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 24/10/2006, 23h11   #1
Invité de passage
 
Inscription : juin 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4
Points : 2
Points : 2
Par défaut Ouvrir une session avec une condition

salut;
je suis sur xp en local je test avec php4, je souhaite ouvrir une session à un moment bien determiné.
Pour cela je passe une variable dans l'URL, c'est qu'à ce moment là que je veux ouvrir ma session. voila ce que j'ai fait.
Code :
1
2
3
4
5
6
7
8
if(isset($_REQUEST['ma_var']) || isset($_SESSION['ma_var'])){
session_start();
$_SESSION['ma_var']='1' ;
 
$_SESSION['moi']='maxi'; 
echo $_SESSION['moi'] ;// juste pour tester
}
echo $_SESSION['moi'] ;// juste pour tester aprrès la condition
la session est ouverte au moment que la condition est vraie.
Mais dès que la variable 'ma_var' n'est plus present dans l'URL
la condition n'est plus remplie, et ma sessin est detruite automatiquement.

quelqu'un à une idée.
turboklm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 23h22   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Dans votre if vous tester si la variable de session ma_var existe or elle n'existera jamais puisque le session_start se trouve après ! En effet, la fonction session_start démarre une session si aucune n'est attribuée au client mais récupère son contenu (initialisation du tableau superglobal $_SESSION avec l'ensemble des variables de session précédentes) dans le cas contraire. Donc il y a une erreur de conception.

Je vous recommande de lire Les sessions en PHP à ce sujet.


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 00h44   #3
Invité de passage
 
Inscription : juin 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4
Points : 2
Points : 2
Par défaut session

Citation:
Envoyé par julp
Dans votre if vous tester si la variable de session ma_var existe or elle n'existera jamais puisque le session_start se trouve après ! En effet, la fonction session_start démarre une session si aucune n'est attribuée au client mais récupère son contenu (initialisation du tableau superglobal $_SESSION avec l'ensemble des variables de session précédentes) dans le cas contraire. Donc il y a une erreur de conception.

Je vous recommande de lire Les sessions en PHP à ce sujet.


Julp.
Citation:
Bien sûr qu'elle existera ma variable, puisqu'elle est passé via l'url
en cliquant sur un lien sous la forme : page.php?ma_var=1.
la preuve en cliquant sur ce lien la session est effectivement ouverte,
mais dès que je clic sur un autre lien ne contenant pas ma variable ma_var, la session est fermée ou detruite.

je voudrais une reponse sous le fond du pb pas sous la forme.
merci.
turboklm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 08h47   #4
Membre habitué
 
Avatar de SOAD08
 
Inscription : juillet 2004
Messages : 101
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2004
Messages : 101
Points : 104
Points : 104
Envoyer un message via MSN à SOAD08 Envoyer un message via Skype™ à SOAD08
pourquoi ne pas plutot faire un :

Code :
1
2
3
4
5
6
 
session_start();
 
if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
session_destroy();
}
ou même,

Code :
1
2
3
4
5
6
 
session_start();
 
if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
$_SESSION = array();
}
dans le second cas la session existe quand même mais aucune variable de session n'est enregistré
SOAD08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2006, 23h29   #5
Invité de passage
 
Inscription : juin 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4
Points : 2
Points : 2
Citation:
Envoyé par SOAD08
pourquoi ne pas plutot faire un :

Code :
1
2
3
4
5
6
 
session_start();
 
if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
session_destroy();
}
ou même,

Code :
1
2
3
4
5
6
 
session_start();
 
if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
$_SESSION = array();
}
dans le second cas la session existe quand même mais aucune variable de session n'est enregistré


Citation:
merci SOAD08 , ton idée n'est pas mal j'y avais pas pensé, je vais l'essayer.
turboklm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web