mette à jour un cookie

Greenangel
Invité n'ayant pas de compte PHPfrance

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Greenangel
Invité n'ayant pas de compte PHPfrance

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 .

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Greenangel
Invité n'ayant pas de compte PHPfrance

29 juil. 2006, 19:11

Merci beaucoup, ça fonctionne en mettant une clef.

:P