Gros problème avec les cookies

phsautreau Messages postés 40 Date d'inscription lundi 13 février 2012 Statut Membre Dernière intervention 18 avril 2014 - 28 févr. 2003 à 12:27
cs_Tortuegeniale Messages postés 1123 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 juin 2008 - 28 févr. 2003 à 21:26
Bonjour,

Je développe un site que je veux adaptable au mal voyant, cela signifie que j'ai créé une petite barre à l'instar de celle présenta lors de l'installation de certaines version de linux permettant de choisir une couleur de fond.

Pour ce faire (cf. code joint ci-dessous) il me parrait judicieux de lire un cookie sur l'ordinateur client. Si celui-ci n'existe pas, je le crée, à l'inverse je le charge et l'exploite.

Dans la phase d'exploitation je test si dans l'url une autre couleur ($nc pour nouvelle couleur) à été passée en paramètre.
Si telle n'est pas le cas je continue le programme.
Mais si telle est le cas alors je voudrais "l'enregistrer sur le poste client" puis l'esploiter.
Je dois donc recréer le cookie et je pense forcer la page à se recharger, mais c'est là que le bas blesse, car je n'arrive pas à le recréer sans essuyer différent messages d'erreur tous convergeant vers la même conclusion, cette parte de mon programme ne fonctionne pas.

Alors voici le code :

En premier lieu : index.php

<?
if($imcca){
// le cookie existe, on le charge
$coul= $imcca;
// on vérifie si une nouvelle couleur de fond a été envoyé
if (!empty($nc)){
// si c'est le cas on vérifie si la nouvelle couleur est différente de celle importée du cookie
if ($coul!=$nc){
// on la place dans la variable de couleur par défaut
$coul=$f;
setcookie("imcca",$coul,time+(86400*365),"/");
}
}
} else {
// le cookie n'existe pas, on le crée en lui attribuant une couleur par défaut
$coul="#FFDB9D";
setcookie("imcca",$coul,time+(86400*365),"/");
}
?>
<HTML>
<HEAD>
<TITLE>...</TITLE>
.......
</HEAD>

\">
----

<TD width=\"648\" valign=\"top\" align=\"center\">
<TABLE width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<!-- Entete de page -->
<? include \"./entete.php\"; ?>
<!-- Fin entete de page -->
 	<!-- Barre d'outils -->   
      	<? include \"./toolbar.php\"; ?>  
	<!-- Fin barre d'outils -->  
(......)

</HTML>


et maintenant voici une ligne d'appel issue de toolbar.php :

<TD bgcolor ="#DEFFFF" width="70" height="4" border="0">
        

              [./index.php?rub=<? echo $r ?> "> 
       
               ]
         



D'avance merci pour votre très précieuse contribution.

Ph. Sautreau
A voir également:

3 réponses

cs_Tortuegeniale Messages postés 1123 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 juin 2008
28 févr. 2003 à 14:17
Salut

ton probleme est simple

sur un lien tu mets
OnClick= "<? setcookie("imcca","#DEFFFF",time+(86400*365),"/"); ?>"

mais c'est impossible parceque le cookie est généré avant que le header de la page soit envoyé (avant la 1ere balise html). En plus si ce code marcherai il serait exécuter au chargement de la page.
Ce ke tu dois faire c tout simplement a la place de ton lien faire une redirection du genre

navi.php?rub=blabla

dans ta page navi.php tu pourras comme tu en a envis créer ou annuler un cookie et ensuite tu inclus la page de la variable rub

include("$rub");

Voila
++

--> http://www.kame-house.org <--
La plus grosse base de données sur les dessins animés des années 80
Site gratuit et sans pub
0
phsautreau Messages postés 40 Date d'inscription lundi 13 février 2012 Statut Membre Dernière intervention 18 avril 2014
28 févr. 2003 à 15:42
Re,

Et merci pour cette aide, mais le problème reste entier, car en faisant :

[./index.php?rub= <? echo $r ?>&nc=<? echo $codecouleur ?>

je n'arrive toujours pas à détruire le cookie en cours pour le recréer avec le nouveau code couleur.

Question, donc :

Comment efface-t-on un cookie et le recrée-t-on (avec le même nom, la même durée avant expiration, etc.. mais bien sûr pas avec la même valeur ) dans la même page (index.php) sans se payer des message d'erreur ?

Encore merci !
Ph. Sautreau
0
cs_Tortuegeniale Messages postés 1123 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 juin 2008
28 févr. 2003 à 21:26
pour éffacer un cookie tu doit entrer le meme code que pour le créer mais ne met aucune valeur dedans, ni aucune limite de temps, juste setcookie(nomducookie) et c tt

++

--> http://www.kame-house.org <--
La plus grosse base de données sur les dessins animés des années 80
Site gratuit et sans pub
0
Rejoignez-nous