[Résolu] Session : marche pô :(

Session : marche pô :( [Résolu] - PHP - Programmation

Marsh Posté le 21-11-2005 à 11:51:41    

Ola,
 
Je sèche complétement sur un pbl de session, arghhhhhhh, si quelqu'un peut m'aider...
En fait quand je reviens sur la première page, il me recharge toujours le menulogin.php alors qu'une authentification a été faite, humm...
 
voici le code de la première page :
 

Code :
  1. <?php
  2. // initialisation de la session
  3. session_start() ;
  4. ?>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  6. "http://www.w3.org/TR/xhtml/DTD/XHTML1-STRICT.DTD3>
  7. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
  10. <meta http-equiv="pragma" content="no-cache" />
  11. <style type="text/css">
  12.  @import url(styles/design.css);
  13. </style>
  14. <title>Document sans nom</title>
  15. </head>
  16. <body>
  17. <div id="menu">
  18. <?php
  19. if (!isset($_SESSION['login'])) {
  20.  include "menulogin.php";
  21. }
  22. if (isset($_SESSION['rights'])) {
  23.  if($_SESSION['rights'][0])
  24.   print '<li><input type="submit" name="compte"  value="Gestion Utilisateur" onClick="document.menu.submit()" ></li>';
  25. }
  26. ?>
  27. </div>
  28. <div id="global">
  29. <?php
  30. if (!isset($_GET['page'])) $page= 'accueil';
  31. else $page= $_GET['page'];
  32. switch($page)
  33. {
  34. case 'accueil' :include ('accueil.php');break;
  35. case 'verif' :include ('verif.php');break;
  36. case 'adduser' :include ('adduser.php');break;
  37. }
  38. ?>
  39. </div>
  40. </body>
  41. </html>


 
et voici le code de la page qui valide l'ouverture de session :
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml/DTD/XHTML1-STRICT.DTD3>
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
  6. <meta http-equiv="pragma" content="no-cache" />
  7. <style type="text/css">
  8.  @import url(styles/design.css);
  9. </style>
  10. <title>Document sans nom</title>
  11. </head>
  12. <?php
  13. // Charge les fonctions d'accès MySQL
  14. require "definitions.inc.php";
  15. require "MySQL.php";
  16. // si on a reçu les données d'un formulaire :
  17. if (!empty($_POST['login']) && !empty( $_POST['password'] )) {
  18. // on les récupère
  19. $login = $_POST['login'] ;
  20. $password = $_POST['password'] ;
  21. // on teste si le mot de passe est valide + si le compte est actif :
  22. if($_SESSION['rights']=verification($login,$password)) {
  23.  // on sauvegarde donc son nom dans la session
  24.  $_SESSION['login'] = $login ;
  25.  $message = 'vous êtes correctement identifié';
  26.  $message .='<a href="index.php">retour</a>';
  27. } else {
  28. // sinon on revient à la page principale :
  29.  $message ='<a href="index.php">retour</a>' ;
  30. }
  31. } else {
  32. // un des champs n'est pas rempli
  33. $message = 'le login ou le mot de passe est vide  ' ;
  34. $message .='<a href="index.php">retour</a>' ;
  35. }
  36. function verification($login,$password){
  37. $returnRights='';
  38. // Connexion SQL
  39. $serveur=ConnectHOST(FALSE);
  40. if($serveur) {
  41.  mysql_query('USE '.BASE,$serveur); }
  42. else {
  43.  echo 'Error : ' . mysql_error() . "\n"; }
  44. // Création de la requête SQL
  45. $login_sql = mysql_real_escape_string($login) ;
  46. $password_sql = mysql_real_escape_string($password) ;
  47. $sql ="SELECT * FROM PERSONNE "." WHERE LOGIN='$login_sql' AND PASSWORD='$password_sql'" ;
  48. // Exécution de la requête SQL
  49. $result = mysql_query($sql,$serveur);
  50. if($data=mysql_fetch_object($result)) {
  51.  // On vérifie si le compte est actif  
  52.  if($data->ACTIVATION) {
  53.   // On récupère les droits
  54.   $returnRights[]=$data->DROITRESERVATION;
  55.   $returnRights[]=$data->DROITCOMPTE;
  56.   $returnRights[]=$data->DROITRESSOURCE;
  57.  }
  58.  else echo 'Votre compte n\'est pas activé';
  59. } else{
  60.  echo 'Mauvais mot de passe  ';
  61. }
  62. return $returnRights;
  63. }
  64. function getActivate($login,$password){
  65. }
  66. ?>
  67. <body>
  68. <div id="global">
  69. <p>
  70. <?php echo $message ?>
  71. </p>
  72. </div>
  73. <body>
  74. </body>
  75. </html>


 
Voilà, j'ai bien le message envoyé par

Code :
  1. $message = 'vous êtes correctement identifié';
  2. $message .='<a href="index.php">retour</a>';


 
mais quand je reviens sur index.php (la première page), il me réaffiche le menu, alors que j'ai ce code là qui devrait m'afficher un autre choix :

Code :
  1. <?php
  2. if (!isset($_SESSION['login'])) {
  3.  include "menulogin.php";
  4. }
  5. if (isset($_SESSION['rights'])) {
  6.  if($_SESSION['rights'][0])
  7.   print '<li><input type="submit" name="compte"  value="Gestion Utilisateur" onClick="document.menu.submit()" ></li>';
  8. }
  9. ?>


 
Et j'ai bien vérifié, dans la page verif.php, $_SESSION['rights'][0] contient bien 1. Par contre dans index.php, $_SESSION['login'] et $_SESSION['rights'] ne sont plus connues...
 
Laurent


Message édité par laurent_31 le 21-11-2005 à 13:30:37
Reply

Marsh Posté le 21-11-2005 à 11:51:41   

Reply

Marsh Posté le 21-11-2005 à 13:30:19    

Résolu : Pbl dû à dreammachin. Certainement les sessions qui ne s'inscrivent pas correctement sur le disque : aucun pbl avec le serveur local.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed