|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bonjour,
Avant tout oui oui je sais que setcookie doit être placé en haut tout en haut avant toute autre chose. Mais je l'ai pas fait. Pourquoi ? Qu'en sais-je, le goût de l'exotisme peut-être, la soif d'aventure... allez savoir ! Enfin, toujours est-il que j'ai sur un formulaire un input tout nouveau tout beau, qui dit "se souvenir de mes informations". Ce qui nécessite de créer un cookie si le input est coché. Et donc pas du tout si le input n'est pas coché. Donc j'ai écrit, assez finement du reste, la chose suivante, en haut de la page qui réceptionne les données du formulaire : Code :
L'idée, pourtant fulmineuse, était ensuite d'afficher naturellement la valeur du cookie dans le value des inputs des formulaires, comme suit : Code :
<input name="pseudo" type="text" size="30" maxlength="30" value="<?php $_COOKIE['sauvegarder']['pseudo']; ?>" > Comme la page formulaire.php est elle même inclue dans la page index.php, j'ai aussi essayé de placer le setcookie dans la page index.php, tout en haut. Marche pas. Pourtant c'est simple les cookies normalement, peut-être est-ce parce que je n'ai pas mangé de la journée? Où est l'erreur dans mon boulot ? |
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : février 2006 Messages : 840 ![]() |
PHP étant asynchrone un cookie est crée puis ne peut être exploité que dans une autre page ou bien après rafraichissement.
|
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : janvier 2004 Messages : 242 ![]() |
Il ne faut absolument aucun carractere avant l'envoi des cookies, donc il faut que ta balise <? soit tout en haut de la page, sans aucun espace ou quoi que se soit avant.
Ps : ce n'est pas beau le register global on |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
asynchrone ?
Déjà je viens d'essayer de vérifier, le setcookie doit être placé en haut de la page d'index et non en haut de la page formulaire qui est inclue dans la précédente. je viens d'enlever le if, pour voir, de toute façon le cookie ne semble même pas être créé, le champ de formulaire n'affiche rien. **edit** que vient faire faire register global on là dedans, chaced? |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : janvier 2004 Messages : 242 ![]() |
il ne manque pas des arguments a ton cookie ? genre un ,,,,.'/', false, 0);
bon je dits ça il y a un moment que je n'ai pas utilisé de cookie |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Je viens d'essayer de remplacer $pseudo par $_POST[pseudo] dans le set cookie, mais c'est pareil. Rien ne s'affiche ensuite dans le value du formulaire, sans pour autant qu'il y ait un message d'erreur.
|
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : janvier 2004 Messages : 242 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
si en fait, je n'avais pas écrit le echo dans le value.........
Mais curieusement, la valeur du cookie s'est affichée lors d'un retour de page (et pas les autres informations, donc c'est bien le cookie), mais pas ensuite lorsque l'on change de page et que retourne sur la page de formulaire. Là plus rien. |
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bon alors,
Si je crée le cookie comme cela : Code :
setcookie('sauvegarder[pseudo]', $_POST['pseudo'], (time() + 3000000)); Si je fais cela : Code :
setcookie('sauvegarder[pseudo]', '$pseudo', (time() + 3000000)); |
|
|
00
|
|
|
#10 | |
|
Membre confirmé
![]() Inscription : janvier 2004 Messages : 242 ![]() |
Citation:
Code :
setcookie('sauvegarder[pseudo]', "$pseudo", (time() + 3000000)); |
|
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
oui mais alors maintenant voilà le problème semble t'il :
Normalement le cookie ne se crée qu'à partir du moment ou le bouton "sauvegarder mes informations " est cochée : Comment faire sans condition if pour tester si le checkbox est cochée ? **edit** c'est noté pour les ' |
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Voilà ce qui se passe :
Je rempli le formulaire. Je clique prévisualiser. Pour tester je retourne à la page précédente avec le bouton précédent du navigateur. Toutes les informations sont dans les champs. J'actualise la page, seul le champ où l'information provient du cookie est remplie: preuve que le cookie est bien initialisée. Je réactualise la page pour tester si le cookie est toujours là : plus rien ne s'affiche. |
|
|
00
|
|
|
#13 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bon ça fonctionne, je me suis inspiré d'un style switch que j'avais commis il y a quelques temps.
Au passage, voyez que l'on peut écrire des choses avant le setcookie, puisque mon code est le suivant. Code :
|
||
|
|
00
|
|
|
#14 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Sans remettre ça les gars, comment ce fait-il donc que l'on puisse placer une condition if pour initialiser un cookie alors que rien ne doit normalement précéder setcookie ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com