Pb de cookie

Buzzz -  
 gonet -
salut,
j'ai un petit problème pour creer un cookie.
je souhaite stocker une chaine de caractere contenant le nom, le prenom, l'e-mail et le mot de passe de l'utilisateur et je ne sait pas comment faire.

je vouds donne le code que j'ai developper:
<?php
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$Mail=$_POST['Mail'];
$Classe=$_POST['Classe'];
$MDP=$_POST['MDP'];
$tab=array($Nom,$Prenom,$Mail,$Classe,$MDP);
$tableau=implode("_",$tab);
setcookie("college",$tableau,time()+60*60*24*30, "/","localhost",0)
?>

j'ai essayer de l'afficher par la ligne:
<?php
echo "valeur du cookie=".$HTTP_COOKIE_VARS["college"];//l.20
?>

mais ça m'affiche une erreur:
Notice: Undefined index: college in t:\easyphp1-7\www\traiteform.php on line 20

Si quelqu'un voit d'ou vient mon erreur je lui serait très reconnaissant.
tchaô!

20 réponses

GallyNet
 
J'ai testé t'on code avec la version 4.3.1 de php et j'ai eu aucune erreur.
Il se peut que l'erreur vienne du navigateur, regarde dans la doc PHP sur la fonction setcookie, certain navigateur gére mal les cookie
Essaye de voir tout les cookies qui sont envoyé:
<?
foreach($HTTP_COOKIE_VARS as $key => $value){
echo $key."=".$value;
}
0
Taboujr Messages postés 507 Statut Membre 117
 
Bonjour.

Comme l'a dit GallyNet, il n'y a pas d'erreur dans ton code. Toutefois, quand tu utilises la fonction setcookie, le tableau $HTTP_COOKIE_VAR n'est pas modifié. Ta variable sera disponible dans le tableau après un rechargement de la page, où le tableau $HTTP_GET_COOKIE sera réévalué et contiendra la variable que tu y as écrite dans la page précédente.

D'où ma question : ton code de vérification est-il dans la même page que l'écriture de ta variable dans le cookie ?

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
Buzzz
 
En effet, il est dans la même page.
Si j'ai bien compris il faut faire une page pour l'ecriture du cookie et une autre pour la verif. si c'est ça j'aurait pu passer encore du temps à me prendre la tête.
merci pour vos conseil.
tchô!
0
Buzzz
 
Salut c'est encore moi,
j'ai essayer de faire ce que vous m'avez dit mais j'ai toujours la même erreur (Undefined index: college).
j'ai l'impression que le cookie ne se créé pas est ce que c'est par ce que je travail en local, j'ai teste avec Iexplorer 6 et mozilla 1.6 sous windows 98 S.E.
ça commence à me prendre la tête. Si quelqu'un à la solution ça m'evitera de prendre trois kilos d'aspirine ce soir ;)
merci et a+!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Buzzz
 
Salut, je vous redonne les détails de mon code:
fichier traiteform.php:
<?php
setcookie("college",$tableau,time()+60*60*24,"","localhost",0);
echo "<a onClick=\"control()\">cliquez ici</a>";
?>
La fonction control() est appelé dans le fichier fonction.js:
function control(){
check = confirm('Est-ce que ces informations sont exactes?');
if(check==true){
window.open("ChoixNotes.php","_self");
}
else{
window.open("formulaire.html","_self");
}
}
puis j'ai essayé d'afficher le cookie de plusieur façon dans le fichier ChoixNotes.php:
<?php
foreach($HTTP_COOKIE_VARS as $key => $value){
echo "cook=".$key."=".$value;
}
echo $_COOKIE["college"];
echo $HTTP_COOKIE_VARS["college"];
?>
j'ai passé longtemps à chercher mais je n'ai réussi à trouver aucune reponse à mon problème :(
Merci et A+
0
fil
 
meme probleme que toi.
J'ai fait le test sur deux serveurs php differents. Un vieux php 4.2.0 pas de probleme avec mon code et un autre 4.3.2 ca marche pas. Pas de code d'erreurs qui s'affiche lorsque je cree mes cookie mais rien n'apparait daJe cree mes cookie
0
fil
 
Je reprend, petit probleme avec la touche entree...

meme probleme que toi.
J'ai fait le test sur deux serveurs php differents. Un vieux php 4.2.0 qui est local, pas de probleme avec mon code et un autre 4.3.2 ca marche pas sur le reseau. dans le cas du php 4.3.2 pas de code d'erreurs qui s'affiche lorsque je cree mes cookie mais rien n'apparait dans le dossier cookies de windows. L'autre cas marche parfaitement...
quoi faire ?

merci
0
Buzzz
 
Un Peu d'aide SVP
0
Buzzz
 
Apparement je suis pas le seul dans ce cas si qqn à la reponse merci de nous aider, de mon côté je cherche tjrs alors des que j'ai la reponse je la poste ici.
A+ et Bon appetit. :)
0
Buzzz
 
Bien Mangé, moi oui ;)
0
fil
 
le soleil vient de se lever....

toujours pas de solution...

dure journee...

:(
0
Buzzz
 
Salut, :o(
0
Buzzz
 
Salut fil,
J'ai vu qui y avait des problèmes avec EasyPHP 1.7, je travail avec et je me demandais si tu l'utilisait aussi?
Sinon, si quelqu'un sait ce qui va pas, sa reponse sera la bienvenue
Tchô!!
0
fil
 
En fait j'utilise easyphp en local pour faire mes test et apres je transfere sur un serveur NT. Mais c'est une vieille version 1.6.0 et ce bon vieux php etait moins restrictif avec la securité jadis... La c'est un peu le carcan...
Enfin... Ca marche toujours pas tes cookies ? moi depuis hier rien fait. on va laisser reposer ca ira mieux plus tard.
0
Taboujr Messages postés 507 Statut Membre 117
 
Deux ou trois pistes de recherches :

- Vérifie que le nom du serveur ne contient pas d'underscore (peut poser pb avec IE6)
- Regarde la variable $_SERVER['SERVER_NAME'] et vérifie que c'est bien par là que tu accèdes à ta page (IE6 peut poser pb si tu essaie d'écrire un cookie en localhost alors que tu accèdes à la page via 127.0.0.1)
- Essaie en supprimant un par un les attributs optionnels jusqu'à ce que le cookie soit effectivement écrit, ça permettra peut-être d'identifer le problème.

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
Buzzz
 
Ahhhhhhhhhhhhhhhhhh, enfin!!!!!!!
Merci beaucoup TaBou JuNioR, 4 jours sur ce pu**** de cookie, j'ai faillit inventer un nouveau jeu qui s'appelerait: Comment faire passer un clavier à travers un ecran? ;o)
Effectivement, mon erreur etait que je declaré mon cookie:
setcookie(...,'localhost',...) alors qu'il fallait que je mette setcookie(...,'127.0.0.1',...). Bon j'ai encore l'erreur undefined index mais ça ne devrait plus être long.
Encore merci pour tes conseils.
Tchô!! :)))
0
Fil
 
Trop fort...

C'etait un underscore dans le nom du serveur. Ca marche tres bien en passant par l'adresse IP. Franchement une grosse epine en moins dans mon clavier.

Merci beaucoup
0
Reaper
 
Bonjour,
J'ai le meme probleme que vous mais moi ca marche tjrs pas.
Voici mon code
<?php
$expire = 365*24*3600;
setcookie("nickname","plop",time()+$expire,"/",'127.0.0.1');

echo "valeur du cookie=".$HTTP_COOKIE_VARS["nickname"];
?>

Sachant que lorsque je recharge ma page, il ne voit pas le cookie ...et pour cause il n'y est pas .. ;)
Ma machine se nomme machinetest (dc pas de underscore) et j'ai essayé avec setcookie(...'localhost') et set cookie(...'machinetest'...)
Qq un sait il d'ou vient mon erreur ?
J'utilse easyPHP 1.7 et IE.6
Merci.
0
Buzzz
 
Salut Reaper,
chez moi ça marchait pas avec '127.0.0.1' essaye plutot localhost
autrement affiche plutot le cookie dans une autre page avec
echo $_cookie['nickname'].
sinon je vois pas.
Bonne chance ;-)
0
Reaper
 
Nan, ca marche pas non plus ... :(
Il ne crée meme pas le cookie ... que ce soit avec localhost ou 127.0.0.1 ... je vois pas ce qui cloche :(
0
gonet
 
essaye de verifier ceci au cas ou

IL NE FAUT PAS DE "UNDERSCORE", ni dans le nom du domaine, ni dans le path pour lequel le cookie est constitue, ni dans le nom du serveur, car cette Merd... de IE ne les accepte plus. Netscape, oui.

PS. Diffusez l'info, je pense que ca peut servir
0