Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
561 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de session: deconnexion.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de session: deconnexion.

n°1733367
derkomai
Posté le 18-05-2008 à 17:36:56  profilanswer
 

Bonjour à tous!
je suis débutante en PHP, je fait un projet avec l'univ, et donc on ne se préocuupe pas de sécurité pour l'instant.
 
voilà, j'ai des problèmes de connexion en rapport avec les sessions je pense.
 
voilà: J'ai une page internet index.php basée sur le même modèle que la page listeMP.php c'est à dire header-texte-footer.

Code :
  1. <?PHP require_once('00-header.php');
  2. echo "<H1> Bienvenue! </H1>";
  3. require_once('01-footer.php');
  4. ?>


 
voici ca a quoi ressemble l'header
 
00-header.php

Code :
  1. <?PHP
  2. require_once('03-login.php'); ?>
  3. <HTML>
  4. <HEAD>
  5. <link rel="stylesheet" href="site.css">
  6. <title> Marque-pages: Accueil </title>
  7. <META name="keywords" content="bookmark, favoris, marque page, marques-page">
  8. <META name="description" content="Site de partage de bookmarks">
  9. </HEAD>
  10. <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>
  11. <BODY>
  12. <DIV id="subtitle">
  13. <?PHP
  14. require_once('09-fonctions.php');
  15. $subtitle="Title";
  16. echo $subtitle;
  17. ?>
  18. </DIV>
  19. <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>
  20. <DIV id="left-menu">
  21. <?php
  22. $requete = 'SELECT login FROM Utilisateur';
  23. $resultat = mysql_query($requete,$conn) or die ("Erreur dans la requête ".$requete."<br>".mysql_error());
  24. while ($nuplet = mysql_fetch_assoc($resultat)) {
  25.   print "Un utilisateur: ".$nuplet['login'].'<br>';
  26. }
  27. If ($connect==false)
  28. {?>
  29. <form action="index.php" method="GET">
  30. <h3>Connexion</h3>
  31. <p>login: <input name="f_login" size="25" type="text"></p>
  32. <p>mot de passe: <input name="f_mdp" size="25" type="password"></p>
  33. <p><input type="submit" value="Se connecter"></p>
  34. </form>
  35. <?PHP
  36. ;}
  37. else
  38. {
  39. ?>
  40. <a href="listeMP.php" ><IMG src="images/B-listeMP.gif" border="0"></a>
  41. <BR>
  42. <p><a href="index.php?f_login=&f_mdp=">Déconnexion</a></p>
  43. <?PHP
  44. ;}
  45. echo $_SESSION['login']."<BR> b";
  46. echo $connect;
  47. if(isset($_SESSION['login']) && $_SESSION['login']!=NULL)
  48.      {
  49.      echo '<BR>Connecté';
  50.      $connect=true;
  51.      }
  52. else
  53.      {
  54.      echo '<BR>Non connecté';
  55.      $connect=false;
  56.      }
  57. ?>
  58. </DIV>
  59. <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------>
  60. <DIV id="info">
  61. <A name=top></A>


 
 
donc, quand je me connecte une première fois, je retombe sur index.php connectée, j'ai accès aux variables de session et les lignes de test m'affichent connectée.
mais il suffit que je clique sur le lien vers listeMP.php pour que je sois déconnectée.
 
alors je sais pas ou est l'erreur même si je pense qu'elle est dans 03-login.php, sauf que j'arrive pas à trouver!!! j'ai essayer plein de choses mais à l'aveuglette ca marche pas!
 
Pourriez vous m'aider s'il vous plait?
 
03-login.php

Code :
  1. <?PHP
  2. session_start();
  3. $conn = mysql_connect('localhost:3307','lif4','mdplif4') or die ('Impossible de se conncter à MySQL: '.mysql_error());
  4. mysql_select_db('lif4',$conn) or die ('Impossible d\'aller sur la base lif4: '.mysql_error());
  5. $requete2 = mysql_query("SELECT login, password FROM utilisateur WHERE login='".$_GET['f_login']."'" );
  6. $re=mysql_fetch_assoc($requete2);
  7. //requetes: isolement du n-uplet correspondant à un utilisateur particulier.
  8. if (ISSET($_GET['f_login']) && ISSET($_GET['f_mdp']))
  9. //si le password et le login sont définis
  10. {
  11.   $_SESSION = array();
  12.   SESSION_write_close();
  13.   session_start();
  14. }
  15. if($_GET['f_mdp']==$re['password']) //si le mot de passe est juste.
  16. {
  17.   $_SESSION['login']=$_GET['f_login'];
  18. }
  19. else         // si le mot de passe est faux
  20. {
  21.   $_SESSION['login']=NULL;
  22. }
  23. if($_SESSION['login']!=NULL)
  24. { $connect=true;}
  25. else
  26. {$connect=false;}
  27. $login= $_SESSION['login'];
  28. ?>


Message édité par derkomai le 18-05-2008 à 17:43:32
mood
Publicité
Posté le 18-05-2008 à 17:36:56  profilanswer
 

n°1733371
masterpsx
Aigloun foutougrafe
Posté le 18-05-2008 à 17:54:47  profilanswer
 

Verifie la configuration de ton serveur, il faut que la session_id soit transmise, normalement c'est par les cookies mais ca peut aussi se faire par url
Mais je crois qu'il ya une erreur dans ton code, ta session sera toujours NULL sauf si tu envois le mot de passe, essaye un truc du genre :
 

Code :
  1. if (isset($_GET['f_mdp']) && $_GET['f_mdp'] == $re['password']) //si le mot de passe est juste.  
  2. {
  3.   $_SESSION['login']=$_GET['f_login'];
  4.   $login = $_SESSION['login'];
  5. }
  6. else if (isset($_SESSION['login']) && $_SESSION['login'] != "" ) // si une session existe
  7. {
  8.   $login = $_SESSION['login'];
  9. }
  10. else
  11. {
  12.     $_SESSION['login'] = NULL;
  13. }
  14. if ($_SESSION['login'] != NULL) $connect = true;
  15. else $connect = false;


Message édité par masterpsx le 18-05-2008 à 18:09:16
n°1733378
derkomai
Posté le 18-05-2008 à 18:07:57  profilanswer
 

Je m'y connais pas trop en serveurs...
le serveur c'est mon propre ordi vu que je travail avec Xamp!
d'ailleurs quand je fait une page toute simple avec des sessions mais sans histoires de connexion, les variables de session passent bien d'une page à l'autre!
 
je pense qu'il y a forcément une erreur quelque part...

n°1733380
masterpsx
Aigloun foutougrafe
Posté le 18-05-2008 à 18:10:39  profilanswer
 

j'ai édité mon message, je pense avoir trouvé ton erreur

n°1733384
sielfried
Posté le 18-05-2008 à 18:17:25  profilanswer
 

Je vois pas où est-ce que tu te sers des infos de session pour aller vérifier la connexion, là. Tu utilises systématiquement GET (de façon dangereuse d'ailleurs point de vue sécurité).
 
Au passage, évite de mettre tes infos (login/mot de passe) en clair sur un forum comme ça, à moins peut-être que tu ne bosses en local sans ouverture sur l'extérieur.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1733385
derkomai
Posté le 18-05-2008 à 18:19:43  profilanswer
 

okiii!!!
ébé...
dans $_SESSION['login'] != ""
le "" ca veut dire NULL?

n°1733388
derkomai
Posté le 18-05-2008 à 18:24:18  profilanswer
 

Sielfried: je sais qu'il faut pas montrer les mot de passe!
oui je bosse en local, et qui voudrais aller pirater un projet de site marque page uniquement pédagogique?
et comme je t'ai dit on se fiche de la sécurité, mais je tournais tellement en rond que je verifiais chaque possible source d'erreur, ou je cherchais tout ce qui pourrait en déterminer une.
 
sinon:
echo $_SESSION['login']."<BR> b";
echo $connect;
ca c'était invisible lorsque ma connexion foirais.


Message édité par derkomai le 18-05-2008 à 18:25:19
n°1733392
masterpsx
Aigloun foutougrafe
Posté le 18-05-2008 à 18:35:45  profilanswer
 

derkomai a écrit :

okiii!!!
ébé...
dans $_SESSION['login'] != ""
le "" ca veut dire NULL?


Non pas vraiment, ca veut dire vide, ca n'a rien avoir avec ton problème (c'est ma façon de coder), ton erreur était simple, avec tes conditions ta variable de session était toujours NULL sauf si tu envoyais ton mot de passe par $_GET, hors j'imagine que tu ne l'envois pas a chaque fois que tu changes de page mais uniquement lorsque tu te logs, il faut bien que tu verifies si une variable de session existe déjà a un moment donné :)
 

n°1733398
derkomai
Posté le 18-05-2008 à 19:27:50  profilanswer
 

oui, merci! ^^
la question par rapport à "" c'était juste pour savoir, à coté si "" et NULL c'était la même chose ou pas


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de session: deconnexion.

 

Sujets relatifs
[C] probleme avec librairie mysql.h [résolu][WEB] Problème d'hebergement
Problème avec JButton et SetIcon...[résolu]Pb avec LoadMovie:fonctionne ou pas selon l'anim à charger
PayPal IPN, Problème IPN PayPal (je ne recois plus la notification)besoin d'aide pb JAVA declaration impots + videos SVP
Problème Menu déroulant CSS et Flash sous IE[réglé] Probleme taille fenetre popup
[VBA] Problème de calcul d'une maturité pour un pricer d'optionProbleme import csv
Plus de sujets relatifs à : Problème de session: deconnexion.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR