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 18/08/2006, 17h13   #1
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
Par défaut [Cookies] Variable de Session capricieuse :/

Salut à tous !
Dans le code ci-dessous, j'ai un soucis : la variable $_SESSION['cookie'] perd sa valeur .. elle est comme "réinitialisée" au rappel de la page par l'intermédiare de "header(Location ...);"

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
<?php
/* Gestion des cookies pour la langue */
session_start();
if (!isset($_COOKIE["langue"]))
{
	if (!isset($_SESSION['cookie']))
	{
		$_SESSION['cookie'] = true;
		$langue = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
		setcookie("langue", $langue[0], time()+9999999, "/");
		header("Location: ".$_SERVER['SCRIPT_URI']);
		exit();
	}
	else
	{
		$err = "<center><b><font size=3 color=black>Veuillez ACTIVER les cookies !!<br>
		Cookies must be enabled to navigate in english !!!<br><br></font></b></center>";
		$lang = "fr";
	}
}
else
{
	$lang = $_COOKIE["langue"];
}
Si vous pouviez m'aider .... je ne sais plus vers quoi me tourner
nikospkrk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 17h30   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
A ce que je comprends si tu rerentres dans ton test de la session cookie c'est que ton cookie (langue) n'est pas défini alors que tu viens juste de le créer.

Si tu fais un echo du cookie et un echo de la session tu obtiens quoi ?

EDIT : fait plutot un var_dump de tes variables
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 17h53   #3
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
[ merci de t'intéresser à ma cause ^^ ]

En fait quand je fais des echo ca me fait des erreurs d'header c'est normal ^^
Mais je me suis envoyé des mails à la place XD et en fait ben la variable passe bien à "true" [ sOit = 1 ] mais après le header(Location: ... elle est à nouveau inconnue ^^'
nikospkrk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 18h15   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Tente une redirection en JS pour voir si ça te fait le même souci

Code :
<script>window.location.href = "tapage.php";</script>
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 18h36   #5
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
Ben non je ne peux pas insérer du JS car je suis AVANT les balises <html> et head de la page

Le problème c'est que ca débouche sur une boucle INFINIE vu que la variable de session est à chaque "tour" [en fait après chaque rappel de la page] en quelque sorte "effacée" car il entre dans le "if (!isset($_SESSION['cookie'])"

Ke problème c'est vraiment cette variable ... parce qu'elle passe bien à "true" .. mais INUTILEMENT .. c'est comme si à chaque fois il recréait une NOUVELLE session
nikospkrk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 18h47   #6
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
cookie n'est peut etre pas un choix judicieux de nom de cle.
Si register_global est active, il y a des chances qu'une variable ait le meme nom.
Prefixe la et dis nous si cela change qqch.
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 19h51   #7
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
j'ai appelé la variable "sess-cookie" mais rien n'y fait


Mais vous ne voyez cause de disparition de ma variable dans le code ? parce que moi je ne trouve vraiment pas ... je peux ajouter peut être pour vous aider que ce code est dans une page elle même incluse dans tous les entête de toutes les pages du site ... AVANT tout autre code
nikospkrk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 20h25   #8
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
Je me suis envoyé un mail à chaque occurence du code, en y joignant la valeur de $_SESSION['sess-cookie'], qui vaut toujours RIEN, mais aussi l'id de la session ... et là à CHAQUE nouvelle redirection, l'id de session est différent .... je ne crois pas que ce soit normal :/

Ce qui confirme dce probleme de SESSION dans mon code

A l'aide please .. tout marche sur mon site sauf cet aspect ... j'aimerai l'ouvrir plutôt qu'avoir ce "coming sonn" ^^

NikO.
nikospkrk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2006, 13h11   #9
Invité régulier
 
Étudiant
Inscription : août 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 6
Points : 6
Points : 6
Envoyer un message via MSN à nikospkrk
Bon j'ai résolu mon problème en passant le SID en paramètre à session_start(); dans le cas où les cookies ne sont pas acceptés .... c'est moche car on voit l'SID de la session dans la barre ... mais je recomande à l'utilisateur d'activer ses cookies ... comme ça tout marche et tout le monde est content lOl ^^

NikO.
nikospkrk 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 16h26.


 
 
 
 
Partenaires

Hébergement Web