redirection de variable avec sessions

redirection de variable avec sessions - PHP - Programmation

Marsh Posté le 18-06-2007 à 17:11:59    

Bonjour à tous, merci de lire mon problème, donc voila lorsque je me redirige sur une autre page les variables ne passent pas, il y a un message comme quoi elles ne sont pas définis, pourtant je les ai enregistrer donc je ne comprend pas trop et vu que je débute j'ai un peu de mal, voici les codes de la page d'identification et de celle qui s'ouvre
 
page d'identification

Code :
  1. <?php
  2. session_start();
  3. //recuperation et test des login et mot de passe
  4.    if (isset($_POST['Login']))
  5.     $Login=$_POST['Login'];
  6.    else
  7.     $Login="";
  8.    if (isset($_POST['Passwd']))
  9.        $Passwd=$_POST['Passwd'];
  10.    else
  11.     $Passwd="";
  12.  //connection a la base de donnees
  13.  mysql_connect("localhost","root","" ) or die ("Impossible de se connecter à MySQL" );
  14.  // selection de la base reference
  15.  mysql_select_db("test" ) or die ("Impossible de se connecter à la base de données" );
  16.  //  selection du login,pass,n°identité et categorie a partir de la table identification
  17.  $select_Login="select Login, Passwd, NumIdent, NumCategorie FROM identification where Login='$Login';";
  18.  //  execution de la requette
  19.  $query_Login=@mysql_query($select_Login);
  20.  $valeur=mysql_fetch_row($query_Login);
  21.  //on met chaque resultat dans chaque variable
  22.  $Login_session=@mysql_result($query_Login,"0","Login" );
  23.  $Passwd_session=@mysql_result($query_Login,"0","Passwd" );
  24.  $NumIdent_session=@mysql_result($query_Login,"0","NumIdent" );
  25.  $NumCategorie_session=@mysql_result($query_Login,"0","NumCategorie" );
  26.  //  si le login et le mot de passe sont pas vide alors on verifie que le login entre et le pass sont bon
  27.  if ($Login!="" && $Passwd!="" ):
  28.      if ($Login==$Login_session && $Passwd==$Passwd_session):
  29.    //  on entre les variable dans une nouvelle session PHP
  30.          session_register('Login_session','Passwd_session','NumIdent_session','NumCategorie_session');
  31.    $PHPSESSID = session_id();
  32.    switch($NumCategorie_session){
  33.     case "1":
  34.      header("Location:administrateur/administrateur.php?PHPSESSID=$PHPSESSID" );
  35.            exit;
  36.      break;
  37.     case "2":
  38.      header("Location:collaborateur/listeClient.php?PHPSESSID=$PHPSESSID" );
  39.            exit;
  40.      break;
  41.     default:
  42.      header("Location:client/projet.php?PHPSESSID=$PHPSESSID" );
  43.            exit;
  44.    } // switch
  45.   else :
  46.      // si le login et le mot de passe sont pas bon, on affecte a une variable  $msg un message d'erreur
  47.       $msg = "<u>/!!!!\</u> Nom d'utilisateur ou mot de passe incorrect. <u>/!!!!\</u>";
  48.       echo $msg;
  49.      endif;
  50.  endif;


 
page qui est redirigé
 

Code :
  1. <?php
  2. session_start();
  3. echo $Login_session;
  4. ?>


 
merci de votre aide car la je suis bloqué depuis un bon moment et dites le moi si je suis pas assez clair

Reply

Marsh Posté le 18-06-2007 à 17:11:59   

Reply

Marsh Posté le 18-06-2007 à 17:54:00    

Les variables de sessions ne fonctionnent pas comme ça, il faut utiliser la superglobale $_SESSION.
 
http://fr2.php.net/manual/fr/ref.session.php


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 18-06-2007 à 22:14:18    

Autrement dit, quand tu veux qu'une variable sois accessible via la session, tu doit la déclarer comme ça:

Code :
  1. $_SESSION["variable"] = "valeur";


Elle sera accessible via toutes les pages où tu auras appelé session_start().


---------------
.:: Kmeleon ::.
Reply

Marsh Posté le 19-06-2007 à 09:29:17    

merci d'avoir répondu, j'ai modifier avec la méthode que vous m'avez donné et mintenant ça fonctionne très bien, merci beaucoup je vais enfin pouvoir continuer

Reply

Sujets relatifs:

Leave a Replay

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