Cookie explode

Petit nouveau ! | 2 Messages

07 juin 2011, 14:38

Bonjour à tous,

Je rencontre actuellement un problème avec mes cookie sur mon site.
Le principe : un utilisateur ajoute un lieu à son panier et il peut se faire un petit voyage sympa.

Problème : Impossible de gérer plusieurs infos dans mon cookie.

Je souhaiterai que l'utilisateur puissent ajouter plusieurs lieux à son cookie.
Le problème c'est que ça m'affiche que UN lieu sur tout ceux que je met alors soit je les ajoute mal soit il n'arrive pas à tous les lire ...

setcookie('test',$_GET['ref'], time() + 365*24*3600);

if (isset($_COOKIE['test']))
{
    $r = explode(';', $_COOKIE['test']);
    
        for($i=0;$i<sizeof($r);$i++)
            {
                echo $r[$i].'<br/>';
            }
}else{
echo 'test marche pas';

}


J'espère avoir été clair, merci d'avance de votre aide..
Cordialement, Aligatoure.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 juin 2011, 20:04

salut,

il te gérer un tableau que tu serialize avant de le mettre dans un cookie.


Pourquoi ne pas utiliser les sessions ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

08 juin 2011, 10:06

Je voulais tenter de gérer les cookies mais oui en effet, les session font la même chose.
Je vais faire avec les variables session ça sera plus rapide les connaissant déjà


Merci moogli.

ViPHP
ViPHP | 2577 Messages

08 juin 2011, 11:02

Bonjour,

Je pense qu'il y a un problème dans le raisonnement : $_COOKIE['test'] n'est pas mis à jour par la fonction setcookie()

En début de traitement, tu dois récupérer le cookie, puis le modifier.
if (isset($_COOKIE['test']))
{
    $r = explode(';', $_COOKIE['test']);
}
else
{
   $r = array();
}   
$r[] = $_GET['ref'];
$test = implode(';',$r); 
setcookie('test',$test, time() + 365*24*3600);