Tom's Guide > Forum > Programmation > [php] Problèmes avec les sessions
Mot :    Pseudo :           
 

Bonjour, j'ai crée un système de sessions pour un esapce membres mais il ne fonctionne pas et je ne comprend pas pourquoi :

Ma page index.php :

Code :
  1. <?php
  2. if (isset($_SESSION['login'])) {
  3.     session_start ();
  4.     $login = $_SESSION["login"];
  5.     include("connect_base.inc.php" );
  6.     $sql = 'SELECT prenom FROM site_user WHERE login = "'.$login.'" ';
  7.     $req = mysql_query($sql) or die('Erreur SQL !
  8. '.$sql.'
  9. '.mysql_error());
  10.     $data = mysql_fetch_array($req);
  11.     $prenom = $data['prenom'];
  12.     mysql_close();
  13.     }
  14. include("head.php" ); ?>
  15. <body>
  16. <p class="logo"><img class="coll" src="pics/logo.jpg" width="775" height="126" alt="Logo" /></p>
  17. <p class="pub"><?php include("pub.php" ); ?></p>
  18. <div class="log">
  19. <?php
  20. if (isset($_SESSION['login'])) {include('membres/_opt/log_ok.php');}
  21. else include('membres/_opt/log_in.php');
  22. ?>
  23. </div>
  24. <div class="navig"><?php include("navig.php" ); ?></div>
  25. <div class="menu"><?php include("menu.php" ); ?></div>
  26. </body>
  27. </html>



La page qui vérifie le mot de passe et qui créer la session :

Code :
  1. <?php
  2. include("connect_base.inc.php" );
  3. $sql = 'SELECT pswd FROM site_user WHERE login = "'.$_POST['username'].'" ';
  4. $req = mysql_query($sql) or die('Erreur SQL !
  5. '.$sql.'
  6. '.mysql_error());
  7. $data = mysql_fetch_array($req);
  8. $navig = $_POST['navig'];
  9. $password = $data['pswd'];
  10. if ($password == md5($_POST['password']))
  11.               {
  12.                 session_start ();
  13.                 $login2 = $_POST['username'];
  14.                 session_register($login);
  15.                 header ('location: ../../index.php'); 
  16.             }
  17. mysql_free_result ($req);
  18. mysql_close();
  19. ?>



En théorie j'aimerai que quant la session est crée, ben j'aimerai afficher la page réservé au membres.

Mais j'ai toujours ma page de connexion, comme si l'utilisateur ne s'été pas logger...

J'ai du faire une erreur mais j'arrive pas à la trouver

Merci d'avance

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

Je n'ai pas tout vérifier, mais l'erreur flagrante est :

if (isset($_SESSION['login'])) {
session_start ();

C'est normal que cela ne marche pas, le session_start() doit etre placé en premier, avant tout controle de variable de session.

Vu que tu teste SESSION['login'] alors que session_start n'est pas déclaré, cette variable n'existera pas d'origine. Il faut faire ainsi :

session_start ();
if (isset($_SESSION['login'])) {
//Traitement de toute tes variable $_SESSION[]

Répondre à okinou

et sur la deuxieme page c'est pareil, il faut mettre le session_start() tout au début, meme si l'identification n'aboutit pas

Répondre à ritzle

Oui effectivement y'avait bien cette erreure là. Merci.
Par contre çà ne marche toujours pas.
J'ai toujours la page de connexion qui apparait

Répondre à Surfeurdu33@IDN

comme ca en regardant rapidement je dirait que c'est le session_register($login);
essaie $_SESSION['login'] = true; pour voir

Répondre à ritzle
Tom's Guide > Forum > Programmation > [php] Problèmes avec les sessions
Aller à :

Il y a 2193 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