BOuhhhhh ya mon cookie qui marche pas ..... [PHP] - Programmation
Marsh Posté le 10-06-2002 à 13:53:57
Pilou2001 a écrit a écrit : alors voila l'erreur : Oops, php3_SetCookie called after header has been sent in your script on line 123 quand j'ecrit un cookie comme ça : <? duree = 24*60*60; setcookie("shadowlangue",$albums,time()+$duree); ?> POurKoi ça marche pas ???? |
parce que tu settes ton cookie apres que les headers de la page aient été envoyés... c-a-d apres que tu aies déjà "imprimé" le contenu (ou une partie) de ta page...
Marsh Posté le 10-06-2002 à 14:06:32
greg@freestarthu a écrit a écrit : parce que tu settes ton cookie apres que les headers de la page aient été envoyés... c-a-d apres que tu aies déjà "imprimé" le contenu (ou une partie) de ta page... |
ça veut dire que je doit faire mon cookie avant que la premiere ligne de texte soit ecrite?
dans le head du document ??
j'ai vu ça sur beaucoup d'exemple en php et j'ai jamais sur ce que ça voulait dire .. : Header("Location: ".$URL);
Merci
Marsh Posté le 10-06-2002 à 14:08:12
Pilou2001 a écrit a écrit : ça veut dire que je doit faire mon cookie avant que la premiere ligne de texte soit ecrite? |
(oui)
Citation : dans le head du document ?? |
mais ça n'a rien a voir avec les fonctions header() je crois
Citation : j'ai vu ça sur beaucoup d'exemple en php et j'ai jamais sur ce que ça voulait dire .. : Header("Location: ".$URL); |
ça fait une redirection
et ça aussi doit etre fait avant que tu n'ecrives dans ta page
Marsh Posté le 10-06-2002 à 14:38:58
bon voila , il me fait plus d'erreur mais ça marche tj pas ...
j'ai une page qui s'apelle albums.php3 ...
au tout debut , je fout ça :
<? $duree=24*60*60; ?>
<? if (albums=="fr" ){
setcookie("shadowlangue",$albums,time()+$duree);
}
if (albums=="int" ){
setcookie("shadowlangue",$albums,time()+$duree);
}
?>
puis 2 liens :
<h3><a href="albums.php3?albums=fr">Albums 1</a><br>
<a href="albums.php3?albums=int">Albums 2</a></h3>
puis
<?
if ($shadowlangue){
echo "le cookie est egale à".$shadowlangue;
} else {
echo "le cookie n'existe pas ";
}
?>
et bha le resultat : si je clique sur un des liens : le cookie n'existe pas ...
Marsh Posté le 10-06-2002 à 14:41:51
le principe d'un cookie, c'est qu'il est renvoyé a ton serveur par le browser à chaque requete...
donc
si tu envoies le cookie pour une reponse donnée, le browser ne peut pas l'avoir renvoyé au serveur... capito?
sur ta page met un lien vers elle meme et le cookie devrait etre actif quand tu rappelles cette page la 2e fois...
Marsh Posté le 10-06-2002 à 14:47:51
greg@freestarthu a écrit a écrit : le principe d'un cookie, c'est qu'il est renvoyé a ton serveur par le browser à chaque requete... donc si tu envoies le cookie pour une reponse donnée, le browser ne peut pas l'avoir renvoyé au serveur... capito? sur ta page met un lien vers elle meme et le cookie devrait etre actif quand tu rappelles cette page la 2e fois... |
ha non pas capito du tout ... car les liens se font deja vers la page ...
j'ai dit au debut que la page se nomait albums.php3
donc un lien vers albums.php3?albums=fr
c quand meme un lien vers la page elle meme non ?
Marsh Posté le 10-06-2002 à 14:59:42
Pilou2001 a écrit a écrit : ha non pas capito du tout ... car les liens se font deja vers la page ... j'ai dit au debut que la page se nomait albums.php3 donc un lien vers albums.php3?albums=fr c quand meme un lien vers la page elle meme non ? |
euh oui j'avais pas vu
et apres avoir cliqué sur ce lien ça marche tjs pas?
Marsh Posté le 10-06-2002 à 15:39:42
Regarde ton code :
<? if (albums=="fr" ){
setcookie("shadowlangue",$albums,time()+$duree);
}
if (albums=="int" ){
setcookie("shadowlangue",$albums,time()+$duree);
}
?>
T'as oublié les "$" devant les variables "albums". Ca peut jouer non ?
Soit dit en passant que je ne vois pas l'intérêt de ces conditions puisque tu éxécutes les mêmes instructions. Un "isset($albums)" devrait faire l'affaire pour vérifier que $albums est défini.
Marsh Posté le 12-06-2002 à 10:29:23
Euh , cetait juste un exemple jeffes !
J'allait pas copier toute ma page web quand meme ....
en fait je fais ce cookie car je reussir a retourner exactement sur la meme page apres un systeme allopass ! .
Voila
@+ et merci !
Marsh Posté le 12-06-2002 à 10:40:03
Euh, avant de partir tu pourrais m'expliquer ce que c'est qu'un système allopass, ça me fait penser à allo-ciné mais à part ça...
Au fait, t'as déjà essayé de faire fonctionner des cookies sous Netscape 6 ? Moi y a pas moyen.
Marsh Posté le 10-06-2002 à 13:48:57
alors voila l'erreur :
Oops, php3_SetCookie called after header has been sent in your script on line 123
quand j'ecrit un cookie comme ça :
<?
duree = 24*60*60;
setcookie("shadowlangue",$albums,time()+$duree);
?>
POurKoi ça marche pas ????