[PHP] - cookies actifs qu'après actualiser

Résolu/Fermé
brutax Messages postés 37 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 26 février 2013 - 22 avril 2012 à 20:54
brutax Messages postés 37 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 26 février 2013 - 23 avril 2012 à 08:31
Bonjour à tous.

Je suis entrain de développer quelques scripts en php et je fais appel aux cookies.

J'ai un formulaire dans un fichier php form.php.
Le "action" de ce formulaire me renvoie sur ce form.php mais dans une autre partie, dans laquelle j'enregistre dans des cookies les données de mon formulaire.

En gros :


session_start();
$action=$_GET['action']

if ($action="formulaire")
{
<html>

<head>
       bla bla bla
</head>

<body>
        affiche mon formulaire
</body>

</html>
}

else
{
setcookie('cookie_action[type]', $_POST['type'], (time() + 7200));

<html>

<head>
       bla bla bla
</head>

<body>
       <?php
             echo("Le type est : ".$_COOKIE['cookie_action']['type']);
        ?>
</body>

</html>
}


Bon, vous vous en doutez, c'est plus compliqué que ça, mais l'idée est là.
Je vérifie bien d'enregistrer mes cookies avant l'écriture de quoi que ce soit sur ma page html.

Le problème, c'est que le contenu de mon cookie ne s'affiche que si j'actualise la page. Il n'affiche rien lorsque j'arrive sur la page pour la première fois après avoir validé mon formulaire.

Comment ce fait-ce ? Est-il possible de régler ce problème ?

Merci à tous :-)
A voir également:

2 réponses

Bonjour

La variable $_COOKIE contient les cookies que ton visiteur t'a envoyés.
Dans le script que tu montres, si le client n'a pas encore reçu de cookie (la première fois) il ne t'envoie rien, donc $_COOKIE est vide.
Tu lui envoies un cookie lors de cette première fois, mais il ne te renverra que la fois suivante, lors de l'actualisation.
Ce que tu vois est donc tout à fait normal.

Si tu tiens à afficher la valeur du cookie que tu envoies, tu n'as qu'à faire
echo("Le type est : ".$_POST['type']);
1
brutax Messages postés 37 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 26 février 2013 8
23 avril 2012 à 08:31
Ouais,
ça m'a travaillé cette nuit et je me suis dit que c'était certainement ça. Je te remercie, j'utiliserai les $_POST autant que possible.

Merci le père !
0