Tom's Guide > Forum > Programmation > probleme variables de sessions avec PHP

probleme variables de sessions avec PHP

Forum Programmation : probleme variables de sessions avec PHP

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
J'ai un site avec un espace membre dont l'accès peut se faire depuis n'importe quelle page du site via un bloc en haut de page. Ce bloc comprend donc des champ login et password.
J'arrive à me connecter avec mes identifiants, la vérification se passe nickel et j'arrive même à me déconnecter ou à afficher les variables de session sur la page index.php.
Mais voilà le problème : sur l'include "login.php" (bloc qui sert à se connecter donc) j'ai l'impression que ma variable de session "SESSION['logged']" se met en "false" et du coup je n'arrive à afficher aucune variable de session... J'ai bien mis des session start, bien fais attention à cette variable de session mais rien n'y fait je bloque !

Concrètement, mes variables s'affichent dans le bloc de contenu de la page mais pas en haut (où je voudrais qu'elles s'affichent), c'est assez gênant.

Voici le code qui (devrait) contenir la fameuse erreur qui est en train de me tuer :)

index.php

Code :
  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
  4. include("inc/fonctions.php" );
  5. require("inc/connexion.php" );
  6. ?>
  7. <html>
  8. <head>
  9.     <title>Accueil</title>
  10.     <link href="<?php echo RACINE; ?>img/iconeBarre.png" rel="icon" type="image/png" />
  11.     <link href="<?php echo RACINE; ?>css/index.css" rel="stylesheet" media="screen" type="text/css" title="style"/>
  12. </head>
  13. <body>
  14. <div id="content">
  15. <?php
  16.     include(RACINE."inc/login.php" );
  17.     include(RACINE."inc/menu.php" );
  18.     include(RACINE."inc/banniere.php" );
  19.     include(RACINE."inc/menuTop.php" );
  20. ?>
  21. <div id="corps">
  22. </table>
  23. <?php include(RACINE."inc/copy.php" );?>
  24. </div>
  25. <?php
  26. //Déconnection de la base de données.
  27. mysql_close();
  28. ?>
  29. </div>
  30. </body>
  31. </html>



Code :
  1. login.php
  2. <?php
  3. if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
  4. include("../inc/fonctions.php" );
  5. ?>
  6. <link href="<?php echo RACINE ;?>css/login.css" rel="stylesheet" media="screen" type="text/css" title="style"/>
  7. <div id="login">
  8.                 <form method="post" action="<?php echo RACINE ;?>content/connexion.php">
  9.                         <label for="pseudo">Pseudo : <input type="text" name="pseudo" id="pseudo" /></label>
  10.                         <label for="mot_passe">Mot de passe : <input type="password" name="mot_passe" id="mot_passe" /></label>
  11.                         <label for="souvenir">Se souvenir de moi ? <input type="checkbox" name="souvenir" id="souvenir" /></label>
  12.                         <input type="submit" name="connexion" value="Se connecter" />
  13.                 </form>
  14. <?php
  15. print_r($_SESSION);
  16.     if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
  17.     {
  18.     echo '<a href="deconnexion.php"><img src="images/close-session.gif" height="20" border="0" style="vertical-align : middle"></a>';
  19.     }
  20.     else
  21.     {
  22.     };
  23.     ?>
  24. <a href="<?php echo RACINE ;?>index.php"><img src="<?php echo RACINE ;?>img/logoAccueil.jpg"></a>
  25. </div>



Les autres includes "menuTop", "fonctions... ne contiennent rien qui ait un rapport avec ces sessions.
Merci beaucoup de votre aide !

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
- 0 +

salut,

t'as pas de session_start() dans ton fichier login.php

Répondre à OmaR

Salut Omar,

J'ai mis un session_start() dans login.php mais rien n'y fait.

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Répondre à the stalker

- 0 +

tout dépend ce que tu fais dans connection.php :p

Répondre à OmaR

connexion.php

Code :
  1. <?php
  2. require("../inc/connexion.php" );
  3. //Si la variable $_SESSION['logged'] n'existe pas on la créée.
  4. if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
  5. //&& $_SESSION['logged'] === false
  6. if (isset($_POST['connexion'])&& $_SESSION['logged']===false)
  7. {
  8.         //Vérification des autres variables.
  9.         if (isset($_POST['pseudo'],$_POST['mot_passe']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']))
  10.         {
  11.                 //Vérification du pseudo.
  12.                 $pseudo = htmlspecialchars($_POST['pseudo']);
  13.                 $mot_passe = htmlspecialchars($_POST['mot_passe']);
  14.                
  15.                 //Requête comptant le nombre de pseudos $_POST['pseudo']
  16.                 $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membre WHERE MEMpseudo='".$pseudo."'" );
  17.              
  18.                 //Si le pseudo existe.
  19.                 if (mysql_result($sql,0,'nb_pseudo') == 1)
  20.                 {
  21.                         //Vérification du mot de passe
  22.                         //Information sur le compte du membre.
  23.                         $sql_infos = mysql_query("SELECT * FROM membre WHERE MEMpseudo='".$pseudo."'" );
  24.                         $donnees = mysql_fetch_array($sql_infos);
  25.                         //Hashage du mot de passe.
  26.                         $mot_passe_hash = md5($mot_passe);
  27.                         //Comparaison du mot de passe.
  28.                         if ($mot_passe_hash == $donnees['MEMmdp'])
  29.                         {
  30.                                 //On vérifie que le compte est confirmé.
  31.                                 //Si $donnees['confirmation'] vaut 1.
  32.                                 if ($donnees['confirmation'] == 1)
  33.                                 {
  34.                                         //Tout est bon, on connecte le membre.
  35.                                         $_SESSION['logged'] = true;
  36.                                        
  37.                                         //Création de variables de session, contenant des informations sur le membre.
  38.                                         $_SESSION['id'] = $donnees['MEMid'];
  39.                                         $_SESSION['pseudo'] = $pseudo;
  40.                                         $_SESSION['nom'] = $donnees['MEMnom'];
  41.                                         $_SESSION['prenom'] = $donnees['MEMprenom'];
  42.                                         //Redirection vers la page d'accueil
  43.                                         header("location: http://www.astronova.fr/index.php" );
  44.                                 }
  45.                                 else
  46.                                         echo 'Erreur : le compte n\'est pas confirmé !<br />
  47.                                         Pour activer votre compte, veuillez vous référer au mail qui vous a été envoyé.
  48.                                         ';
  49.                         }
  50.                         else
  51.                                 echo 'Erreur : le mot de passe est incorrect !';
  52.                 }
  53.                 else
  54.                         echo 'Erreur : le pseudo n\'existe pas !';
  55.         }
  56.         else
  57.                 echo 'Erreur : veuillez remplir tous les champs !';
  58. }
  59. //Si l'utilisateur essaie de se connecter alors que les identifiants de connexion ne sont pas passés ou qu'il est déjà logué
  60. else
  61. {
  62.     echo 'Vous êtes déjà connecté ! Cliquez <a href="deconnexion.php">ici</a> pour vous déconnecter.';
  63. }
  64. ?>



L'autre fichier qui s'appelle aussi "connexion.php" (je sais pas très malin lol) ne contient que la procédure pour se connecter à la base.

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Répondre à the stalker

- 0 +

si tu veux pouvoir utiliser $_SESSION, il te faut un session_start()

Répondre à OmaR

Oui je les avais enlever pour voir si ça venait pas de là. Je l'ai remis et toujours rien.. Je comprends pas d'où ça peut venir.

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Répondre à the stalker

Quand j'affiche le contenu du array SESSION. J'ai ça sur la page principale :
Array ( [logged] => 1 [id] => 5 [pseudo] => test1 [nom] => Test [prenom] => Test )
Donc ça veut dire que tout le système de session fonctionne sinon il pourrait pas passer la variable. Et en haut (login.php) j'ai ça :
Array ( [logged] => )
C'est tout vide. Pourtant au final c'est dans la même page puisque je l'inclue...

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Répondre à the stalker

désolé mais... uuuuup !

------------------------------ Proce : Core 2 Duo E8400 / RAM : 3Go GSkill PC6400 / CM : Asus P5Q / Boitier : Antec Nine Hundred /
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2

 

Répondre à the stalker

Tom's Guide > Forum > Programmation > probleme variables de sessions avec PHP
Aller à :

Il y a 2993 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens