Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2006, 19h52   #1
Membre régulier
 
Inscription : juin 2005
Messages : 260
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 260
Points : 92
Points : 92
Par défaut reinitialisation d'une session a chaque changement de page

Bonjour,

J'ai un problème avec les sessions que je n'arrive pas à résoudre, j'ai pourtant fait plein de test mais je ne comprend pas ce qu'il se passe, à chaque fois qu'on clique sur une autre page, le session se ferme.

Donc la strcuture du site : j'utilise des frames (anim' flash oblige :/), dans l'une d'elle, j'ai mon code qui initialise les variables, et particulierement une instance de la classe Session, qui correspond à ce qui est stocker en session.

J'appelle donc la fonction reload de la classe Session :
Code :
1
2
3
4
5
6
7
8
9
10
function reload($database) {
 
        	if( !$_SESSION['session'] ) {
        		// La session n'existe pas, il faut créer l'objet
	        	$session = new Session();
	        	$_SESSION['session'] = $session;
        	}
 
			return $_SESSION['session'];
        }
La première fois, il crée l'objet, normal vu qu'il n'existe pas, en revanche, dès que je change de page, $_SESSION['session'] est vide et donc il recrée encore un objet Session, qu'il réassigne à $_SESSION['session'].

Pourtant si je fait un
Code :
var_dump($_SESSION['session']);
à la dernière ligne d'execution du script, il m'affiche bien l'objet $session, mais si je le fait au début, la session est vide....

Quelqu'un pourrait m'aider ?
RR instinct est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 20h01   #2
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Pour l'utilisation des sessions, je crois que dès que tu changes de page, il faut refaire en début de script php

session_start();

Et ce pour qu'il réactualise la session... 2 cas

1) La session a déjà été initialisée avant --> session_start() remet à jour les variables de session

2) La session n'a pas été créee --> session_start() la crée.

En résumé, si tu utilise une seule session pour ton site... tu fais un session_start() a chaque début de page php.


Extrait manuel PHP
http://www.php.net/manual/fr/function.session-start.php

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2006, 08h46   #3
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
A savoir..,

Les objets doivent toujours être linéarisés avant d'être placés dans une session.

http://www.php.net/serialize

... Et délinéarisés lorsqu'ils sont à nouveau utilisés :

http://www.php.net/unserialize


Bye
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 17h09   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par Guardian_7
A savoir..,

Les objets doivent toujours être linéarisés avant d'être placés dans une session.

http://www.php.net/serialize

... Et délinéarisés lorsqu'ils sont à nouveau utilisés :

http://www.php.net/unserialize


Bye
Je crois qu'il faut le faire avant le session_start ou un truc comme je me rappelle plus trop mais il y a une subtilité dans ce domaine là.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h32.


 
 
 
 
Partenaires

Hébergement Web