[edité] pb avec les sessions

pb avec les sessions [edité] - PHP - Programmation

Marsh Posté le 13-02-2004 à 10:51:54    

Bonjour, j'ai un petit soucis.
J'ai mon site php qui est hébergé en local via easyPHP, et lorsque je crée des sessions et que j'enregistre des varaibles de sessions j'ai un pb pour les afficher.
Mes variables sont bien enregistrées, mais lorsque j'essaye de les afficher, je n'ai aucune erreur, par contre leur valeur n'apparait pas à l'écran.
 
Merci de votre aide.


Message édité par ArchFolken le 13-02-2004 à 15:03:56
Reply

Marsh Posté le 13-02-2004 à 10:51:54   

Reply

Marsh Posté le 13-02-2004 à 11:24:25    

Code ?

Reply

Marsh Posté le 13-02-2004 à 11:31:08    

Le fichier login.php
 
<?
$login_defini = "test";
$password_defini = "test";  
 
$login = $_POST['login'];  // je recup les var de mon formulaire
$password = $_POST['password'];  
 
if ( ($login == $login_defini) && ($password == $password_defini) )
{
 
session_start();
session en cours  
session_register("login","password" );
header('location: Test.php?page=Accueil);
 
}
else{
 
header('location: Test.php?page=Accesko');
 
}  
 
?>  
 
 
Voila pour la page Affichier, sensée m'afficher mes fameuses variables :
 
<?
session_start();
if ( !session_is_registered("login" ) )
{
print 'Vous n\'etes pas enregistré <br>';
}  
else
echo $_SESSION['login'];
?>

Reply

Marsh Posté le 13-02-2004 à 11:46:33    

Au lieu de

Code :
  1. session_register("login","password" );


 
Utilise plutôt

Code :
  1. $_SESSION['login']=$login;
  2. $_SESSION['password']=$password;


(session_register est "en cours de dépréciation".
 
 
Et pour la page Afficher
 
Au lieu de

Code :
  1. <?
  2. session_start();
  3. if ( !session_is_registered("login" ) )
  4. {
  5. print 'Vous n\'etes pas enregistré <br>';
  6. }
  7. else
  8. echo $_SESSION['login'];
  9. ?>


Fais

Code :
  1. session_start();
  2. If (!empty('$_SESSION['login']))
  3.   {echo 'vous n\'etes pas enregistré<br />';
  4. }
  5. Else
  6. {echo $_SESSION['login'];}


 
Mais bon ton code n'était pas faux, donc le problème vient vraissemblablement d'ailleurs.
 
Tu dis que tes sessions sont bien enregistrées... Tu as bien vérifié qu'elles sont stockées dans un dossier qui correspond au dossier spécifié dans ton php.ini (session_save_path) ?

Reply

Marsh Posté le 13-02-2004 à 11:55:54    

oui du coté du php.ini ça a l'air ok, les sessions s'enregistrent bien, par contre toujours pas d'affichage :(
Merci bcp pour ton aide :)

Reply

Marsh Posté le 13-02-2004 à 11:59:19    

j'ai utilisé ton code à la place du mien et maintenant ça fonctionne, un immense merci :)

Reply

Marsh Posté le 13-02-2004 à 12:04:34    

Oups, je pense donc que tu as corrigé la partie que j'ai donnée pour la page afficher.
 
C'est bien sûr

Code :
  1. If (empty($_SESSION['login']))
  2. {echo 'vous netes pas enregistré';}
  3. Else
  4. {echo $_SESSION['login'];}


Mais si ça marche c'est que tu dois l'avoir fait juste.


Message édité par deliriumtremens le 13-02-2004 à 12:06:56
Reply

Marsh Posté le 13-02-2004 à 13:09:40    

vi vi j'ai corrigé :)

Reply

Marsh Posté le 13-02-2004 à 14:48:42    

oups j'ai encore une question, décidemment ces sessions ....
voila toujours dans une session je voudrai faire ceci :

Code :
  1. <?php
  2. session_start();
  3. if (empty($_SESSION['login']))
  4.  {
  5.  echo 'Vous n\'êtes pas enregistré';
  6.  header('location: Test.php?page=Acces');
  7.     }
  8. else
  9.     {
  10.      echo 'Bienvenue sur votre accés privé';
  11.    }
  12. ?>


 
et dans ce cas précis la commande Header en fait pas la redirection, avez vous une idée du pourquoi ?
La commande Echo par contre est bien prise en compte.
 
Merci de votre aide.


Message édité par ArchFolken le 13-02-2004 à 14:50:26
Reply

Marsh Posté le 13-02-2004 à 16:55:45    

la commande header ne s'utilise pas comme session en etant la premiere en haut d'une page ?

Reply

Marsh Posté le 13-02-2004 à 16:55:45   

Reply

Marsh Posté le 13-02-2004 à 17:03:39    

compuman101 a écrit :

la commande header ne s'utilise pas comme session en etant la premiere en haut d'une page ?


Presque. En fait, il ne faut pas utiliser de commande d'output avant de faire header(), donc tout ce qui est import, echo, etc... est à supprimer avant header().


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 14-02-2004 à 00:48:14    

Merci à vous

Reply

Sujets relatifs:

Leave a Replay

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