Se connecter avec
S'enregistrer | Connectez-vous

[php] Problèmes avec les sessions

Dernière réponse : dans Programmation

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 :
  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.  
  17. <p class="logo"><img class="coll" src="pics/logo.jpg" width="775" height="126" alt="Logo" /></p>
  18. <p class="pub"><?php include("pub.php"); ?></p>
  19.  
  20. <div class="log">
  21. <?php
  22. if (isset($_SESSION['login'])) {include('membres/_opt/log_ok.php');}
  23. else include('membres/_opt/log_in.php');
  24. ?>
  25. </div>
  26. <div class="navig"><?php include("navig.php"); ?></div>
  27. <div class="menu"><?php include("menu.php"); ?></div>
  28. </body>
  29. </html>


La page qui vérifie le mot de passe et qui créer la session :
  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.  
  11. if ($password == md5($_POST['password']))
  12. {
  13. session_start ();
  14. $login2 = $_POST['username'];
  15. session_register($login);
  16. header ('location: ../../index.php');
  17. }
  18. mysql_free_result ($req);
  19. mysql_close();
  20. ?>


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

Autres pages sur : php problemes sessions

Lassé par la pub ? Créez un compte
Expert Programmation

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[]
Lassé par la pub ? Créez un compte
Tom's guide dans le monde