Pb de sessions avec php
Résolu
uiui69
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
uiui69 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
uiui69 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux créer un site avec utilisation des sessions. Tout fonctionne si ce n'est que les variables de sessions ne sont pas transmises sur les autres pages lorsqu'on clique sur les liens, même si on reclique sur le lien de la page sur laquelle on est (ce qui devrait être le cas non ?). Je précise que je travaille en local (wamp). J'ai tout essayé et j'ai pensé au fichier php.ini
Voici le code de ma page index :
<?php
include('sessionstart.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html>
<head>
<title>Mon site</title>
<link rel="stylesheet" type="text/css" href="attributs.css">
<SCRIPT LANGUAGE="JavaScript">
function nouvellefenetre() {
mafenetre =
window.open("inscription.php","MyPopupWindow","resizable=no,menubar=no,status=no,scrollbars=no,menubar=no, width=400, height=300");
}
</SCRIPT>
</head>
<body>
<center>
<div id="ensemble">
<!-- ///////////////////////////////////////////////// Haut ///////////////////////////////////////////////////////////// -->
<?php include('haut.php'); ?>
<!-- ///////////////////////////////////////////////// Milieu ///////////////////////////////////////////////////////////// -->
<div id="milieu">
<div id="gauche">
<?php include('cadre_login.php'); ?>
</div>
<div id="centre">
<h5>Bienvenue sur mon site</h5>
</div>
<div id="droite">
</div>
</div>
<!-- ///////////////////////////////////////////////// Bas ///////////////////////////////////////////////////////////// -->
<?php include('bas.php'); ?>
</div>
</center>
</body>
</html>
Et voici sessionstart.php
<?php
// On démarre la session
session_start();
// deconnexion est la variable transmise en GET quand on clique sur le lien deconnexion
if (isset ($_GET['deconnexion']))
{
$deconnexion=$_GET['deconnexion'];
if ($deconnexion='true')
{
$_SESSION = array();
// Destruction de la session
session_destroy();
}}
?>
Et cadre_login.php
<div id="cadres">
<div id="bloccadres">
<p class="login">
<?php
// On met dans la variable adresse l'adresse de la page courante de facon à ce que la connexion puisse se faire depuis n'importe quelle page
$adresse=$_SERVER['PHP_SELF'];
//Connexion a la bdd
mysql_connect("localhost", "root", "");
mysql_select_db("test"); //base
if (isset($_POST['login']) AND isset($_POST['password']))
{
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$password1 = mysql_real_escape_string(htmlspecialchars($_POST['password']));
// Recherche du login et verification du password
$reponse = mysql_query('SELECT * FROM utilisateurs WHERE login="'.$login.'"');
$donnees = mysql_fetch_array($reponse);
$password2= $donnees['password'];
if ($password1 == $password2)
{
$etat='connecte';
// Ecriture d'une nouvelle valeur dans le tableau de session
$_SESSION['login'] = $login;
$_SESSION['etat'] = $etat;
}
else
{
$etat='erreur';
}}
else if (isset($_SESSION['etat']))
{
$etat=$_SESSION['etat'];
}
else
{
$etat='deconnecte';
}
//C'est pour voir si ca marche (et ca marche pas)
echo $etat;
if ($etat!='connecte')
{ ?>
<!-- le lien est fait vers la page courante grace à la variable adresse -->
<form method="post" action="<?php echo $adresse; ?>?deconnexion=false">
<b>Se connecter</b><br>
<?php if ($etat=='erreur')
{ ?>
<span class="rouge">
Login ou mot de passe incorrect.</span><br> <?php } ?>
Login <input type="text" name="login" size="14" class="zone_texte"><br>
Pass <input type="password" name="password" size="13" class="zone_texte">
<input type="submit" name="submit" value="OK" class="zone_texte"><br><br>
<a href="javascript:nouvellefenetre()" class="lien">S'inscrire</a>
</form>
<?php }
else
{ echo $_SESSION['login'] ?>
,<br>vous êtes connecté.<br><br>
<a href="<?php echo $adresse; ?>?deconnexion=true" class="lien">Se déconnecter</a><br><br>
<?php }
mysql_close();?>
</p>
</div>
</div>
Merci de votre aide...
Je veux créer un site avec utilisation des sessions. Tout fonctionne si ce n'est que les variables de sessions ne sont pas transmises sur les autres pages lorsqu'on clique sur les liens, même si on reclique sur le lien de la page sur laquelle on est (ce qui devrait être le cas non ?). Je précise que je travaille en local (wamp). J'ai tout essayé et j'ai pensé au fichier php.ini
Voici le code de ma page index :
<?php
include('sessionstart.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html>
<head>
<title>Mon site</title>
<link rel="stylesheet" type="text/css" href="attributs.css">
<SCRIPT LANGUAGE="JavaScript">
function nouvellefenetre() {
mafenetre =
window.open("inscription.php","MyPopupWindow","resizable=no,menubar=no,status=no,scrollbars=no,menubar=no, width=400, height=300");
}
</SCRIPT>
</head>
<body>
<center>
<div id="ensemble">
<!-- ///////////////////////////////////////////////// Haut ///////////////////////////////////////////////////////////// -->
<?php include('haut.php'); ?>
<!-- ///////////////////////////////////////////////// Milieu ///////////////////////////////////////////////////////////// -->
<div id="milieu">
<div id="gauche">
<?php include('cadre_login.php'); ?>
</div>
<div id="centre">
<h5>Bienvenue sur mon site</h5>
</div>
<div id="droite">
</div>
</div>
<!-- ///////////////////////////////////////////////// Bas ///////////////////////////////////////////////////////////// -->
<?php include('bas.php'); ?>
</div>
</center>
</body>
</html>
Et voici sessionstart.php
<?php
// On démarre la session
session_start();
// deconnexion est la variable transmise en GET quand on clique sur le lien deconnexion
if (isset ($_GET['deconnexion']))
{
$deconnexion=$_GET['deconnexion'];
if ($deconnexion='true')
{
$_SESSION = array();
// Destruction de la session
session_destroy();
}}
?>
Et cadre_login.php
<div id="cadres">
<div id="bloccadres">
<p class="login">
<?php
// On met dans la variable adresse l'adresse de la page courante de facon à ce que la connexion puisse se faire depuis n'importe quelle page
$adresse=$_SERVER['PHP_SELF'];
//Connexion a la bdd
mysql_connect("localhost", "root", "");
mysql_select_db("test"); //base
if (isset($_POST['login']) AND isset($_POST['password']))
{
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$password1 = mysql_real_escape_string(htmlspecialchars($_POST['password']));
// Recherche du login et verification du password
$reponse = mysql_query('SELECT * FROM utilisateurs WHERE login="'.$login.'"');
$donnees = mysql_fetch_array($reponse);
$password2= $donnees['password'];
if ($password1 == $password2)
{
$etat='connecte';
// Ecriture d'une nouvelle valeur dans le tableau de session
$_SESSION['login'] = $login;
$_SESSION['etat'] = $etat;
}
else
{
$etat='erreur';
}}
else if (isset($_SESSION['etat']))
{
$etat=$_SESSION['etat'];
}
else
{
$etat='deconnecte';
}
//C'est pour voir si ca marche (et ca marche pas)
echo $etat;
if ($etat!='connecte')
{ ?>
<!-- le lien est fait vers la page courante grace à la variable adresse -->
<form method="post" action="<?php echo $adresse; ?>?deconnexion=false">
<b>Se connecter</b><br>
<?php if ($etat=='erreur')
{ ?>
<span class="rouge">
Login ou mot de passe incorrect.</span><br> <?php } ?>
Login <input type="text" name="login" size="14" class="zone_texte"><br>
Pass <input type="password" name="password" size="13" class="zone_texte">
<input type="submit" name="submit" value="OK" class="zone_texte"><br><br>
<a href="javascript:nouvellefenetre()" class="lien">S'inscrire</a>
</form>
<?php }
else
{ echo $_SESSION['login'] ?>
,<br>vous êtes connecté.<br><br>
<a href="<?php echo $adresse; ?>?deconnexion=true" class="lien">Se déconnecter</a><br><br>
<?php }
mysql_close();?>
</p>
</div>
</div>
Merci de votre aide...
A voir également:
- Pb de sessions avec php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows
- Veuillez ouvrir une session avec les privilèges de gestionnaire - Forum Windows 10
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
J'avais fait cette erreur ailleurs mais je n'avais pas vu celle-ci.C'est pourtant pas faute d'avoir cherché.
Donc merci encore...