[PHP] [RESOLU] Session et variables qui n'en fait qu'a ça tete.

Session et variables qui n'en fait qu'a ça tete. [PHP] [RESOLU] - PHP - Programmation

Marsh Posté le 16-02-2005 à 16:14:59    

Alors voila j'aurai besoin de votre aide pour résoudre un problème qui commence a me saouler legerement :D.
J'ai donc un site construit de la maniere suivante, un index avec a l'interieur inclus plusieurs fichiers php pour chaque menus du site, plus un autre fichier inclus qui sert a afficher le contenu suivant l'endroit où on se trouve (c'est un switch()).
 
J'ai donc un petit menu dans lequel on peut se logger, ou si on est déjà loggé on à accès au differentes options du menu membre.
Bref j'utilise pour l'authentification une fonction se trouvant dans un fichier qui contient toutes les fonctions :).
Un session_start() se trouve au tout début de l'index (avant tout code html). La personne rentre un login/mot de passe, la fonction reçoit le tout, elle verifie d'apres la base de donnée que le couple login/passe fonctione et ensuite elle créée $_SESSION['login'] et pareil pour le pass.
Il faut savoir que jusque la tout va bien car j'ai fait plusieur test, les 2 variable $_SESSION son initialisées correctement, la fonction retourne vrai bref nikel.
Cependant pour verifié si la personne est loggué sur l'index, la fonction d'authentification est appelée et si les 2 variables $_SESSION existent alors la personne est loggué. Seulement cette fonction n'arrive jamais a voir ces 2 variables... Ils me semblent pourtant que c'est des vairable globales donc visiblent en tout point du site mais la non...  
 
Si qqun sait comment récupéré ces foutus variables pour que la session fonctionne, merci de m'indiquer ça :)
 

Code :
  1. function auth()
  2. {
  3. //var_dump(isset($_SESSION['login']));
  4. //var_dump(isset($_SESSION['pwd']));
  5. $tempo = false;
  6. if (isset($_SESSION['login']) AND isset($_SESSION['pwd']))
  7. {
  8.  //echo "if 1 ok";
  9.  $tempo = true;
  10. }
  11. else
  12. {
  13.  if (isset($_COOKIE['lr_login']) AND isset($_COOKIE['lr_pwd']))
  14.  {
  15.   $login = $_COOKIE['lr_login'];
  16.   $pwd   = $_COOKIE['lr_pwd'];
  17.   //echo "if 2 ok";
  18.   include("../cfg_nfo/config_infos.php" );
  19.   $req    = "SELECT * FROM membres WHERE login='$login' AND pwd='$pwd'";
  20.   $result = mysql_fetch_array(mysql_query($req));
  21.   if ($result)
  22.   {
  23.     $_SESSION['login'] = $login;
  24.    $_SESSION['pwd']   = $pwd;
  25.    $tempo             = true;
  26.    //echo "if 3 ok";
  27.   }
  28.   mysql_close();    
  29.  }
  30.  else
  31.  {
  32.   if (isset($_POST['login']) AND isset($_POST['pwd']))
  33.   {
  34.    $login = $_POST['login'];
  35.    $pwd   = $_POST['pwd'];
  36.    //echo $login;
  37.    //echo $pwd;
  38.    //echo "if 4 ok";
  39.    include("../cfg_nfo/config_infos.php" );
  40.    $req    = "SELECT * FROM membres WHERE login='$login' AND pwd='$pwd'";
  41.    $result = mysql_fetch_array(mysql_query($req));
  42.    //echo $result;
  43.    if ($result)
  44.    {
  45.     $_SESSION['login'] = $login;
  46.    $_SESSION['pwd']   = $pwd;
  47.    $tempo             = true;
  48.    //echo "if 5 ok";
  49.    //var_dump(isset($_SESSION['login']));
  50.    //var_dump(isset($_SESSION['pwd']));
  51.    }
  52.    mysql_close();       
  53.   }
  54.  }
  55. }
  56. //echo 'tempo:'.$tempo.'<b>';
  57. return $tempo;
  58. }


 
heu tous les commentaires a l'interieur c'etait des tests pour voir ou ça déconnait.


Message édité par Kyfun le 17-02-2005 à 15:33:11
Reply

Marsh Posté le 16-02-2005 à 16:14:59   

Reply

Marsh Posté le 16-02-2005 à 16:18:17    

bha si tu donnes pas le code incriminé, nous on peut pas deviner tes erreurs :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 16-02-2005 à 16:24:03    

ous pardon, je met ça desuite :)

Reply

Marsh Posté le 16-02-2005 à 16:33:19    

la tabulation marche pas super :(
 
edit: C'est un probleme de domaine de visibilité des 2 variables sessions apparement car apres les avoir initialisées elles ne sont visibles nulle part :(


Message édité par Kyfun le 16-02-2005 à 16:43:35
Reply

Marsh Posté le 16-02-2005 à 17:18:30    

InTh3WinDDD a écrit :

la tabulation marche pas super :(
 
edit: C'est un probleme de domaine de visibilité des 2 variables sessions apparement car apres les avoir initialisées elles ne sont visibles nulle part :(


 
As tu mit un session_start(); dans la page où tu veux voir les variables de session ?
 

Reply

Marsh Posté le 16-02-2005 à 17:33:26    

bah j'en ai un dans l'index, donc sachant que toutes les autres pages sont incluses dedans ça devrait etre bon ? Quand j'en met ailleurs ça me met qu'une session est deja ouverte et que donc ça ignore le deuxieme session start.

Reply

Marsh Posté le 16-02-2005 à 20:37:24    

Personne a d'idée :( ?

Reply

Marsh Posté le 17-02-2005 à 11:58:59    

up

Reply

Marsh Posté le 17-02-2005 à 12:01:38    

Y'a une faille de sécurité dans tout ça, non ?

Reply

Marsh Posté le 17-02-2005 à 12:08:17    

ouaip ouaip j'ai rajouté un addslashes() avant de faire la requete :) bon je l'ai pas mis ici. Mais bon ça ne regle bien evidement rien ;p


Message édité par Kyfun le 17-02-2005 à 12:12:20
Reply

Marsh Posté le 17-02-2005 à 12:08:17   

Reply

Marsh Posté le 17-02-2005 à 14:25:49    

InTh3WinDDD a écrit :

Personne a d'idée :( ?


- enlève les commentaires dans ton code et dis nous ce que tu as stp
- verifie ta version de php, car ce n'est que depuis PHP 4.1.0 que $_SESSION est disponible comme variable globale

Reply

Marsh Posté le 17-02-2005 à 15:32:36    

c'est bon le probleme est resolu, il fallait ouvrir une session dans un fichier qui lui n'etait pas inclus dans l'index :)

Reply

Sujets relatifs:

Leave a Replay

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