Page 1 sur 1

mette à jour un cookie

Posté : 29 juil. 2006, 14:25
par Greenangel
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.

Re: mette à jour un cookie

Posté : 29 juil. 2006, 14:49
par Truc
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.

Posté : 29 juil. 2006, 15:25
par Greenangel
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 .

Posté : 29 juil. 2006, 18:25
par Truc
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

Posté : 29 juil. 2006, 19:11
par Greenangel
Merci beaucoup, ça fonctionne en mettant une clef.

:P