mette à jour un cookie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mette à jour un cookie

par Greenangel » 29 juil. 2006, 19:11

Merci beaucoup, ça fonctionne en mettant une clef.

:P

par Truc » 29 juil. 2006, 18:25

Les cookies sous forme de tableau créent autant de cookies que de valeurs:
$duree = time() + 365 * 24 * 3600;
if( isset($_COOKIE['ids']) )
{   	
    if( !in_array($id, $_COOKIE['ids']) )
    {
        $i = count($_COOKIE['ids']);
        setcookie('ids['.$i.']', $id, $duree);
    }  
}
else
{
    setcookie('ids[]', $id, $duree);
}
essaie en précisant l'indice

par Greenangel » 29 juil. 2006, 15:25

Merci de ta réponse mais j'arrive pas à le faire.
$duree = time() + 365 * 24 * 3600;
if( isset($_COOKIE['ids']) )
{
    if( !in_array($id, $_COOKIE['ids']) )
    {
        $_COOKIE['ids'][] = $id;
        setcookie('ids', $_COOKIE['ids'], $duree);
    }
}
else
{
    setcookie('ids[]', $id, $duree);
}
avec mon code, j'ai bien un array de créé s'il le cookie n'existe pas mais à chaque fois la deuxième valeur est écrasée.

je comprends pas .

Re: mette à jour un cookie

par Truc » 29 juil. 2006, 14:49

Salut,
Les deux cas sont possibles regarde les exemples de la doc.

A chaque appel de setcookie() un cookie est crée s'il existe il est écrasé... récupère son contenu effectue les changements (mise à jour) puis recrée le.

mette à jour un cookie

par Greenangel » 29 juil. 2006, 14:25

bonjour tout le monde

j'au un problème, c'est que j'arrive pas à stocker un array dans un cookie, enfin si, j'y arrive mais j'arrive pas à le mettre à jour.

je fais comme ça
$duree = time() + 365 * 24 * 3600;
setcookie('ids[]', $id, $duree;
$id sort de ma bdd.

ca marche pas, a chaque fois mon array est écrasé.

comment on doit faire ?
mettre un séparateur et utiliser explode ?

merci pour vos réponses.