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 16/04/2008, 10h03   #1
Futur Membre du Club
 
Inscription : juin 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 79
Points : 19
Points : 19
Par défaut [Cookies] Problème de lecture d'un cookie

Bonjour,

Aidez moi !!!

Je créé un cookie
$mesdonnées = "id,truc,bidule";
setcookie("logkara",$mesdonnées);

Je vois que le navigateur l'a en memoire puisque je lis
logkara = id%2Btruc%2Bbidule

Je cherche à récupérer les valeurs de mon cookie en faisant
$moncookie = $_cookie['logkara'];

Là on me répond :
Notice: Undefined index: logkara in

Ce n'est pas la première fois que je fais des manips "cookie" et c'est la première fois que cela m'arrive ?

Quoi faire ?

Christian.
christgh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 13h00   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Salut,

Peut-tu préciser un peu plus le fonctionnement ?

Tu tentes bien de récupérer ton cookie dans un autre php que celui servant à le créer ?
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 13h04   #3
Futur Membre du Club
 
Inscription : juin 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 79
Points : 19
Points : 19
Merci pour la réponse.

Oui, je récupère le cookie dans une autre page PHP. Il s'agit d'un cookie qui suit l'internaute durant son surf sur le site, redirection, info complémentaire demandée etc.

Le pire est que j'utilise le même code sur d'autres sites sans aucun problème pourquoi là cela ne marche pas ?

Christian.
christgh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 13h10   #4
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Si tu pouvais nous montrer un peu de code, on y verrai un peu plus clair
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 13h56   #5
Futur Membre du Club
 
Inscription : juin 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 79
Points : 19
Points : 19
Voici le code qui intervient lors de la demande de session

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
25
26
27
28
29
30
 
if (isset($_POST['connexion']))
{
 
	include("ConnexionBD.php");
	Connexion();
	$nom = $_POST['login'];
	$mdp = $_POST['mdp'];
	$rq = "select id,pseudo,avatar FROM coordonnees WHERE pseudo like '".$nom."' AND mdp LIKE '".$mdp."'"; 
	$exe = mysql_query($rq);
	$test = mysql_fetch_array($exe);
	if ($test['id'] != '')
	{
 
 
		$ps = $test['pseudo'];
		$avatar = $test['avatar'];
		$data = $test['id']."#".$ps."#".$avatar;
		session_start();
		$_SESSION['id_user']=$data;
		setcookie("logkara",$data);
		// Affiche la page de saisie demandée
		header("Location: ../index.php");
	}	
	else
	{
		header("Location: ../login.php");
	}
 
}
Et voici le code de la page qui est sensée recevoir les valeurs du cookie

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
if (!empty($_COOKIE['logkara']))
{
	$val = explode("#",$_COOKIE['logkara']);
 
	echo "<div id='identification' class='identite'>
		<div class='fondavatar'><img src='Avatars/".$val[2]."' width='80' height='80'></div>
		<div class='nompseudo'><b>".$val[1]."</b> </div>
		<div class='close'><a href='Sc/logout.php'><img src='Img/logout.ico' border='0' width='20' height='20'></a></div>
		</div>";
}
else
{
	echo $_COOKIE['logkara']." test";
}
Je tombe toujours dans la clause else, le cookie n'est jamais détecté.

Christian.
christgh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 15h16   #6
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
On va commencer par la base des vérifications.

Es-tu sur que ton cookie est bien placé ( Firefox -> Options -> Privacy -> Show Cookies)

Ensuite, les deux phps sont bien sur le même domaine et avec quels urls ?
Edit : Cette dernière question peut-avoir son importance si le cookie est créé par un script situé plus en profondeur dans l'arborescence. cf le param path de setcookie()
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 23h13   #7
Futur Membre du Club
 
Inscription : juin 2007
Messages : 79
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 79
Points : 19
Points : 19
Merci, effectivement, il s'agissait bien du chemin de création.

dans 'path' j'ai mis "/" et bingo !! Ca marche.

C'est un aspect des cookies que j'ignorais, comme le httpOnly.

Merci.
Christian.
christgh 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 15h28.


 
 
 
 
Partenaires

Hébergement Web