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 28/02/2006, 14h14   #1
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Par défaut [Sécurité] Ma variable de session perd son contenu

Bonjour,

J'ai créé un petit test simple pour me familiariser avec les variables de session.

Mon premier fichier est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
 
$ville = "Nantes";
$_SESSION["ville"] = $ville;
session_register("ville");
 
?>
 
<SCRIPT type="text/javascript">
	window.document.location="<?php echo "test1.php"; ?>";
</SCRIPT>
Mon second fichier est le suivant :
Code :
1
2
3
4
5
<?php
	session_start();
 
	echo "-".$_SESSION["ville"]."-";
?>
J'ai testé cet exemple en local et cela fonctionne très bien. Ma deuxième page PHP affiche -Nantes-.

J'ai mis le même exemple en ligne et là ..... surprise ..... ca ne fonctionne plus (il m'affiche --).

Quelqu'un aurait-il une idée sur ca .....

Merci de votre aide.
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h16   #2
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Si tu fais $_SESSION["ville"] = $ville;

inutile de faire session_register("ville");

Puis les identifiants de sessions ne sont pas transmis dans les redirections PHP ou javascript.
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h17   #3
Membre habitué
 
Avatar de ..:: Atchoum ::..
 
Inscription : avril 2003
Messages : 159
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2003
Messages : 159
Points : 130
Points : 130
Envoyer un message via ICQ à ..:: Atchoum ::.. Envoyer un message via MSN à ..:: Atchoum ::.. Envoyer un message via Skype™ à ..:: Atchoum ::..
Salut,

Enleve le session_register, car en plus d'être déprécié et inutile, il peut etre la source de ton erreur.

__________________
On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
http://blog.plopix.net
http://www.ez-france.org
..:: Atchoum ::.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h30   #4
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Bien entendu, j'ai essayé cette version, et ca ne fonctionne toujours pas ...

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
 
$ville = "Nantes";
$_SESSION["ville"] = $ville;
 
?>
 
<SCRIPT type="text/javascript">
   window.document.location="<?php echo "test1.php"; ?>";
</SCRIPT>
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h39   #5
Membre habitué
 
Avatar de ..:: Atchoum ::..
 
Inscription : avril 2003
Messages : 159
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2003
Messages : 159
Points : 130
Points : 130
Envoyer un message via ICQ à ..:: Atchoum ::.. Envoyer un message via MSN à ..:: Atchoum ::.. Envoyer un message via Skype™ à ..:: Atchoum ::..
Les sessions ne sont peut etre pas enregistrées correctement....

As tu la conf de ton hébergeur, il faut peut etre que tu te créé un répertoire session a la racine pour qu'elle soit enregistrées...
(Ce qui me parait bizarre c'est que tu aurais un message d'erreur dans ce cas)
A moins que ca soit un serveur a toi ? Ou il manquerait une petite ligne de conf dans le php.ini

?
__________________
On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
http://blog.plopix.net
http://www.ez-france.org
..:: Atchoum ::.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h43   #6
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Citation:
As tu la conf de ton hébergeur
Non mais comment puis-je la récupérer ?

Citation:
A moins que ca soit un serveur a toi ?
Non, ce n'est pas un serveur à moi ...

Citation:
Ou il manquerait une petite ligne de conf dans le php.ini
J'y ai pensé mais en local, je sais le modifier mais en ligne ..... comment peut-on faire ?
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h45   #7
Membre habitué
 
Avatar de ..:: Atchoum ::..
 
Inscription : avril 2003
Messages : 159
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2003
Messages : 159
Points : 130
Points : 130
Envoyer un message via ICQ à ..:: Atchoum ::.. Envoyer un message via MSN à ..:: Atchoum ::.. Envoyer un message via Skype™ à ..:: Atchoum ::..
Bah, déja tu pourrais uploader un fichier qui contient :
Ensuite nous renseigner sur la valeur de session.save_path et sur les autres variables qui te semble bizarres (qui différe avec ta conf)

__________________
On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
http://blog.plopix.net
http://www.ez-france.org
..:: Atchoum ::.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h55   #8
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Déjà le :

Code :
1
2
$ville = "Nantes";
$_SESSION["ville"] = $ville;
Tu le remplaces par :

Code :
$_SESSION['ville'] = 'Nantes' ;
Ensuite ta redirection javascript tu la remplaces par :

Code :
1
2
header ( 'Location: test1.php' . $begin_follow ) ;
exit() ;
Avec la variable $begin_follow initialisée comme suit :


Code :
1
2
3
4
5
6
7
	$end_follow = '' ;
	$begin_follow = '' ;
	if ( !isset ($_COOKIE[ ini_get ( 'session.name' ) ] ) )
	{
	$end_follow = '&' . SID ;
	$begin_follow = '?' . SID ;
	}
Ainsi tu passes outre le fait qu'un internaute ait activé ou non les cookies.

Ce qui donne pour la page test.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
	session_start() ;
	$_SESSION['ville'] = 'Nantes' ;
 
	$end_follow = '' ;
	$begin_follow = '' ;
	if ( !isset ($_COOKIE[ ini_get ( 'session.name' ) ] ) )
	{
	$end_follow = '&' . SID ;
	$begin_follow = '?' . SID ;
	}
 
	header ( 'Location: test1.php' . $begin_follow ) ;
	exit() ;
?>
Et test1.php :

Code :
1
2
3
4
5
6
<?php
session_start() ;
 
echo $_SESSION['ville'] ;
 
?>
Et là en principe il ne doit plus y avoir de problèmes.
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h14   #9
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Citation:
session.save_path
Impossible de connaitre sa valeur a partir de phpinfo()

Les différences majeurs sont :

- La version 4.4.2 sur le serveur contre 5.0.4 en local (je ne pense pas que ca vienne de là puisque les sessions fonctionne avec la version 4 de PHP.

- Server API est Apache en local et CGI sur le serveur.

- Virtual Directory Support est activé en local et désactivé sur le serveur (je ne sais pas a quoi ca correspond).

- Thread Safety est activé en local et est désactivé sur le serveur.


J'ai essayé ton code macbook et il ne fonctionne pas (ni en local, ni sur le serveur). Voici l'erreur :
Citation:
Warning: Cannot modify header information
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h24   #10
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Citation:
Envoyé par leSeb
Citation:
Warning: Cannot modify header information
Tu envois du code html avant. Je pensais qu'il s'agissais d'un fichier PHP unique. Peut-être il y a t'il un include avant ?
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h26   #11
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Citation:
Tu envois du code html avant. Je pensais qu'il s'agissais d'un fichier PHP unique. Peut-être il y a t'il un include avant ?
Non, non, mon fichier ne contient que le code donné. Et j'affiche ma page en saisissant l'URL à la main dans le navigateur ...
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h35   #12
Membre à l'essai
 
Inscription : décembre 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 24
Points : 20
Points : 20
Est-ce qu'il n'y a pas un caractère invisible avant ton session_start()?
Ca arrive parfois.
Shea13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 17h04   #13
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Citation:
Est-ce qu'il n'y a pas un caractère invisible avant ton session_start()?
Et bien non, tujours pas .............

Personne n'a d'idée ....
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 17h04   #14
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Je sèche...
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 17h11   #15
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
est ce qu'il n'y a pas de code html avant ton code php?
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 18h30   #16
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
Citation:
est ce qu'il n'y a pas de code html avant ton code php?
Non mes fichiers ne contiennent que le code que je vous ai transmis.
leSeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 20h50   #17
Membre à l'essai
 
Inscription : décembre 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 24
Points : 20
Points : 20
Tu peux essayer de faire suivre ta session avec session_id() lorsque tu fais ta redirection, qui permet de recuperer tes sessions lorsque le navigateur n'accepte pas les cookies par exemple.

Code :
1
2
 
header ( 'Location: test1.php?PHPSESSID=session_id()');
Shea13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 21h36   #18
Membre habitué
 
Avatar de ..:: Atchoum ::..
 
Inscription : avril 2003
Messages : 159
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2003
Messages : 159
Points : 130
Points : 130
Envoyer un message via ICQ à ..:: Atchoum ::.. Envoyer un message via MSN à ..:: Atchoum ::.. Envoyer un message via Skype™ à ..:: Atchoum ::..
Citation:
Citation:
session.save_path
Impossible de connaitre sa valeur a partir de phpinfo()
Euh, tu n'as pas de section Session ? dans ton phpinfo ?

Ca vient peut etre de la non ? ca ne choque personne ?

__________________
On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
http://blog.plopix.net
http://www.ez-france.org
..:: Atchoum ::.. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 10h32   #19
Membre confirmé
 
Inscription : juillet 2004
Messages : 328
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 328
Points : 248
Points : 248
J'ai trouvé ......

Il semblerais qu'il y ait des conflits entre les variables de session et les variables locales ????? bizzare mais si on utilise des noms différents, et bien ca fonctionne.

Merci à tous.
leSeb 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 08h15.


 
 
 
 
Partenaires

Hébergement Web