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 20/12/2007, 19h55   #1
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
Par défaut [Cookies] comment créer un cookie ?

voilà j'ai fait une page qui permet de changer la couleur de fond grâce à des boutons radios. Le problème, c'est que j'aimerais que quand je ferme cette page et que je la réouvre, la couleur que j'avais choisie reste en mémoire. D'après ce que j'ai compris le mieux est d'utiliser un cookie, seulement, je ne sais pas si ma syntaxe est mauvaise ou si il y a un test à faire, mais mon cookie ne fonctionne pas.

voici mon code :

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
<?php
$color='white';
setcookie('couleur',$color,time()+365*24*3600);
$couleur=$_COOKIE['couleur'];
if($couleur==null){$couleur="white";}
import_request_variables("G","recu_");
if(isset($recu_r))
		  {
		  if($recu_r=="bleu"){$color='lightblue';}
		  else if($recu_r=="jaune"){$color='yellow';}
		  else if($recu_r=="vert"){$color='lightgreen';}
		  }
echo '<html>
<title>Cookie</title>
<body bgcolor='.$color.'>
<h2>Cookie</h2>
<form method="get" action="cookie.php">
choisissez une nouvelle couleur de fond :<br><br>
<input type="radio" name="r" value="bleu">bleu
<input type="radio" name="r" value="jaune">jaune
<input type="radio" name="r" value="vert">vert
<input type="submit" name="changer" value="changer"><br><br>
<a href="cookie2.php">Page 2<br>
</body>
</html>';
?>
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 13h05   #2
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Hello,

Les infos sur setcookie sont ici.

A priori ton code (setcookie) est juste. Quel est le message d'erreur ou le symptome ?

Sinon il me semble que le fait de mettre
au début du code va te poser problème : il ne prendra pas en compte la nouvelle couleur vu que tu redéfinis à chaque fois la variable $color avec white...

Fais plutôt :
Code :
1
2
3
if (empty($color)) {
    $color='white';
}
Pense aussi à regarder si les cookies sont autorisés dans ton navigateur...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 22h53   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 14
Points : 14
Il ya rien avant ton code ?Meme pas une include qui a du html ?
Mr[ben] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 22h55   #4
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
12monkeys j'ai modifié ce que tu m'as conseillé mais ça n'a rien changé.
en fait je n'ai pas spécialement d'erreur : quand je choisis une couleur et que je ferme la page et que je la réouvre, la page n'est plus de ma couleur que j'avais choisi mais est de nouveau blanche.

Mr[ben] non mon code est au complet il n'y a rien d'autre.
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 23h00   #5
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
As tu vérifié que les cookies sont autorisés dans ton navigateur ?

Ensuite je mettrais à la lettre l'exemple que donne la doc php :

Code :
setcookie("TestCookie", $value, time()+3600);
Soit mettre un espace après la virgule (on ne sais jamais ) et puis je réduirais la durée au niveau du time... comme ci dessus...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 16h29   #6
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
oui oui mon navigateur autorise tous les cookies.
j'ai même essayé avec 2 navigateurs différents (internet explorer 6 et mozilla), mais ça ne fonctionne pas.
Par contre j'ai une erreur qui me dit qu'il ne connait pas la variable $color à la ligne 3 (donc dans le setcookie).
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 11h45   #7
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
bon j'ai modifié un peu mon code mais ça ne fonctionne toujours pas :

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
if(empty($color)){$color='white';}
import_request_variables("G","recu_");
if(isset($recu_r))
		  {
		       if($recu_r=="bleu"){$color='lightblue';}
		  else if($recu_r=="jaune"){$color='yellow';}
		  else if($recu_r=="vert"){$color='lightgreen';}
		  }
setcookie("couleur",$color,time()+3600);
echo '<html>
<title>Cookie</title>
<body bgcolor='.$color.'>
<h2>Cookie</h2>
<form method="get" action="cookie.php">
choisissez une nouvelle couleur de fond :<br><br>
<input type="radio" name="r" value="bleu">bleu
<input type="radio" name="r" value="jaune">jaune
<input type="radio" name="r" value="vert">vert
<input type="submit" name="changer" value="changer"><br><br>
<a href="cookie2.php?id='.$color.'">Page 2<br>
</body>
</html>';
?>
pourtant c'est bien le contenu de la variable $color que je voudrais avoir dans mon cookie
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 12h25   #8
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Citation:
Envoyé par Piccolo_son Voir le message
Par contre j'ai une erreur qui me dit qu'il ne connait pas la variable $color à la ligne 3 (donc dans le setcookie).
Hello il te met toujours ce message ? Sinon il met lequel ?
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys 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 08h06.


 
 
 
 
Partenaires

Hébergement Web