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 13/08/2006, 16h13   #1
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Par défaut Problème de session

Bonjour,

Quand je teste ce fichier ci :
Code :
1
2
3
4
5
6
if ( !isset($_SESSION['init_session']) && !isset($_SESSION['HTTP_USER_AGENT']) ) {
	echo 'pas bon';
	$_SESSION['init_session'] = TRUE;
} else {
	echo 'oki';
}
- A l'ouverture il m'indique 'pas bon' (c'est OK)
- Quand je réactualise la page il m'indique 'oki' (c'est pas bon)

Pourquoi apres la réactualisation de la page ca m'affiche 'oki' ?! $_SESSION['init_session'] sera vrai mais l'autre pas.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h17   #2
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Faut vraiment répondre ?

Cela me parait assez clair.

Premiere génération :

if ( !isset($_SESSION['init_session']) ) est vérfié, donc
--> echo 'pas bon';
--> $_SESSION['init_session'] = TRUE;

A la seconde génération :
if ( !isset($_SESSION['init_session']) ) n'est plus vérifié puisque à la première génération tu as créer la clé, donc
echo 'oki';


ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h18   #3
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
et pourquoi il ne teste pas si $_SESSION['HTTP_USER_AGENT'] existe ?!
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h20   #4
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Non sa je l'ai volontairement écraté car cela n'à pas de rapport direct avec ton problème. C'est une clause que tu as rajouté pour une raison que je ne m'explique pas.
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h23   #5
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
ben non justement moi ma question c'est pourquoi à l'actualisation il met 'oki' alors $_SESSION['HTTP_USER_AGENT'] n'existe pas.

Si yavais pas $_SESSION['HTTP_USER_AGENT'] je serait surement pas venu poser la question -.-

Je suis pas tres doué mais a ce point la faut pas exagéré ........
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h33   #6
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Ah oue tu le recherche dans SESSION ..... J'ai mal lu je pensais que c'était les SERVER.

bref, pour que sa passe dans la premiere condition il faut que les deux soit vrai.

Utilise ||

Su ce je vais aller faire une sieste j'y voit plus clair aujourd'hui...
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h42   #7
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
effectivement ca marche mieux

mais je comrpend pas pourquoi avec || (ou) ca marche et pas avec && (et)
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 16h48   #8
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Table de vérités.
Si tu as fais des étude de dev tu as du en entendre parlé.

http://fr.wikipedia.org/wiki/Table_de_v%C3%A9rit%C3%A9
http://www.php.net/manual/fr/function.variant-or.php
http://www.php.net/manual/fr/function.variant-and.php
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 17h11   #9
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Oui j'ai fait des études la dessus et c'est pourquoi je ne comprend pas pourquoi on doit mettre un || (ou) et non un && (et)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
a = $_SESSION['init_session']
b = $_SESSION['HTTP_USER_AGENT']

Pour que le test réussit il faut que a = 1 et b = 1 

Table && (et)

| a | b | f(a,b)
+---+---+---+
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
+---+---+---+

Table || (ou)
| a | b | f(a,b)
+---+---+---+
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
+---+---+---+
Je comrpend encore un truc de travers ?!
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 17h14   #10
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Oui mais dans ton cas cas la premiere condition renvoie true, la seconde renvoie false.
Donc 1 et 0 (ou 0 et 1 :s).
Donc avec un ET sa renvoie false.
Avec un OU, sa renvoie true.
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 17h17   #11
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
muarf j'avais oublier le ! devant isset lol

merci de ton aide ^^
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 17h22   #12
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
On peut pas dire que j'ai été très efficace sur ce thrad
ePoX 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 05h14.


 
 
 
 
Partenaires

Hébergement Web