[Résolu] - Sessions bizarres, pertes des variables

- Sessions bizarres, pertes des variables [Résolu] - PHP - Programmation

Marsh Posté le 07-08-2008 à 09:40:25    

Bonjour à toutes et à tous,
 
Je me permets de poster ici, car je suis à bout de nerfs sur un script php, en particulier sur des sessions.
Voici en gros le principe de celui-ci ( qui reste basique ).
Page 1 (accueil.php) => Accueil, un formulaire permet de rentrer login et mdp qui sont envoyer par méthode POST.
Page 2 (login.php) => On récupère login et mdp, on va chercher dans la base les infos concernant l'utilisateur et on les charge dans des variables de session.
Page 3 (bienvenue.php) => on affiche "bienvenue".$_SESSION["pseudonyme"] , en autre, mais cela suffira à expliquer mon soucis.
 
J'avais un soucis sur la page login.php, car je fesais $_SESSION["pseudo"] = $enr["pseudo"], ce que le serveur n'aimait pas du tout, il m'affectait 1 à $_SESSION["pseudo"] alors que $enr["pseudo"] valait "bob".
On m'a indiqué que les variables de session ne devrait pas porter le même nom que les variables qu'on leurs affecte (si quelqu'un a une explication...) et effectivement, sur la page login.php, mes variables sont bien initialisées avec les valeurs extraites de la BDD.
Mais suite à un header sur bienvenue.php, la session se vide, il m'affiche "Bienvenue" au lieu de m'afficher "Bienvenue bob" et print_r($_SESSION) vaut array().
Je précise que j'ai bien un session_start() au début de ma page et pas de caractère qui pourrait empêcher le fonctionnement devant ma balise php ( espace, etc ..)
Si quelqu'un avait rencontré un problème similaire, ou si quelqu'un avait un idée, je suis preneur  ;)  
 
Pour info : version php 4.4.8
 
Merci d'avance !


Message édité par witi le 07-08-2008 à 12:48:58
Reply

Marsh Posté le 07-08-2008 à 09:40:25   

Reply

Marsh Posté le 07-08-2008 à 09:46:03    

sans un bout de code, ça va être du de t'aider :o

Reply

Marsh Posté le 07-08-2008 à 09:51:43    

Bonjour, désolé, j'avais peur que ça fasse trop lourd.
 
Voici la page login.php :  

Code :
  1. session_start();
  2. $login=$_POST["login"];
  3. $pw=md5($_POST["password"]);
  4. $requete = "SELECT * FROM users WHERE pseudo='$login' and mdp='$pw'";
  5. $result = mysql_query($requete);
  6. $enr=mysql_fetch_array($result);
  7. $_SESSION["pseudonyme"] = $enr['pseudo'];
  8. $_SESSION["identifiant"]=$enr['id'];
  9. $_SESSION["pw"]=$enr['mdp'];
  10. $_SESSION["niveau"]=$enr['role'];
  11. $_SESSION["connect"]="oui";
  12. header("Location: bienvenue.php" );


 
Et sur bienvenue.php :

Code :
  1. <?php session_start();
  2. echo "<h3>Bienvenue  ".$_SESSION["pseudonyme"]."</h3>";

Reply

Marsh Posté le 07-08-2008 à 12:12:39    

Rajoutes des echo partout pour vérifier les données du tableau $enr, peut-être que cela ne vient pas des sessions :??:

Reply

Marsh Posté le 07-08-2008 à 12:20:58    

j'ai même fait un print_r($enr) et le tableau et bel et bien plein !

Reply

Marsh Posté le 07-08-2008 à 12:40:04    

fais un print_r($_SESSION) sur ta première page

Reply

Marsh Posté le 07-08-2008 à 12:48:28    

ça y est j'ai trouvé !  :bounce:  :bounce:  
 
Une erreur de "manipulation" de ma part, en fait je travaillais dans un template, qui lisait un patron et qui faisait un include() du contenu dans celui-ci.
Le patron n'étant que "lu" et non pas exécuté, le session_start() ne fonctionnait pas.
 
Merci luc@s de t'être penché sur mon problème.
 
Et avis à la population si vous bossez dans des templates ...

Reply

Marsh Posté le 07-08-2008 à 12:57:57    

remarque annexe : quel intérêt de stocker le mot de passe en session ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

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