Je perds les variables SESSION d'une page à l'autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Je perds les variables SESSION d'une page à l'autre

par dunbar » 10 juil. 2009, 19:46

Le session_start() doit toujours être placer avant tout autre code.

par dhjapan » 10 juil. 2009, 19:44

Bonjour,

j'avais bien session_start() partout... en fait ma page etait encodé en utf-8, je me suis aperçu que mon fichier test etait en ANSI ... du coup si je passe ma page en utf-8 without BOM ca fonctionne.

C'etait juste ça.

Maintenant j'ai une petite question, quel l'ordre correct de ses elements :
- header('Content-type: text/html; charset=UTF-8');
- connexion SQL mysql_select_db(...);
- demarrage de la session session_start()
..est-ce qu'il y a un ordre qui mieux qu'un autre ?


Merci beaucoup pour ton aide.

par dunbar » 10 juil. 2009, 19:32

Salut,

A tu placer un session_start() sur toutes tes pages :?:

Je perds les variables SESSION d'une page à l'autre

par dhjapan » 10 juil. 2009, 19:05

Bonjour,

J'ai un soucis de sessions qui ne transmettent pas les variables d'une page à l'autre.

J'ai cette page test :

Code : Tout sélectionner

<?php header('Content-type: text/html; charset=UTF-8'); // CONFIG VARS + CONNEXION MYSQL include_once ("../includes/_config.php"); session_start(); print_r($_SESSION); $_SESSION["test"] = "ok"; ?> <html> <body> <?php print_r($_SESSION); ?> </body> </html>
Là tout va bien, quand je rafraichis ma page le premier "print_r($_SESSION); " affiche bien la variable $_SESSION["test"].

Mais sur une autre page beaucoup plus compliqué la variable ne passe pas, pourtant print $_SESSION tout à la fin de la page et $_SESSION["test"] est bien égale à "ok" :

Code : Tout sélectionner

... <?php print_r($_SESSION); ?> </body> </html> <? // DECONNEXION MySQL mysql_close(); ?>
Donc manifestement il se passe quelque chose qui fait que $_SESSION va être vidé entre mes 2 affichages.

Est-ce que je peux faire quelque chose dans mon code qui commanderait la disparition de ma $_SESSION au rechargement ?

Pour info :
- dans _config.php je ne fais que definir quelques varaibles, et établir ma connexion SQL
- dans ma class d'autentification je vais tester le login et le mot de pass pour ensuite mettre à jour les variables de SESSION, je m'y prends comme celà :

Code : Tout sélectionner

... function login($uname, $pword) { global $_SESSION; ... }

Merci d'avance pour votre aide.