Page 1 sur 1
probleme de cookie
Posté : 07 mai 2008, 14:48
par jeanmed
Bonjour,
Je travail sur un petit système de panier, pour cela je créé un cookie dans lequel je voudrais stocker sous forme de tableau associatif.
Mais lorsque je fais un print_r je ne vois que le dernier enregistrement !!
Voici mon code, je voudrais donc cumuler tous mes enregistrement à la position 0, 1 .... de mon tableau.
<?php
if(isset($_GET['test']))
{
if(!isset($_COOKIE['panier']))
{
setcookie("panier");
}
$_COOKIE['panier'][]=array("id" => "dfdfd",'nom'=>"fdfd",'model'=>"dfdfdfdfd");
print_r($_COOKIE);
}
?>
Posté : 07 mai 2008, 15:00
par FredoMkb
Bonjour
Je crois que le système de Cookies n'accepte pas des "array", il lui faut du "string", pour ce faire, regarde du côté des fonctions "serialize" et "unserialize"...
à+

Posté : 07 mai 2008, 15:13
par Truc
Pourquoi avoir un panier en cookie ?
Un tuto sur les paniers..
Posté : 08 mai 2008, 07:57
par jeanmed
Bonjour,
je cherche à comprendre surtout comment stocker des infos dans le cookie.
Salutations
Posté : 08 mai 2008, 12:07
par M.Jerome
Premièrement on ne peux définir des cookie qu'avec la fonction "setcookie", $_COOKIE ne permeet que l'accès au contenu d'un cookie.
Ensuite, pour stocker un array, il faut le transformer en chaîne de caractères, pour ce faire, la fonction "serialize" ou encore "json_encode" pourront t'aider. Ensuite il te suffit d'utiliser les fonctions qui font le contraire, et ça roule. Par contre j'ai lu qu'il était déconseillé de faire une sérialization avec des cookies, à toi de voir. Mais les session seront plus pratique pour la gestion d'un panier.
Posté : 08 mai 2008, 12:19
par zeus
Pour aller dans la même idée que M.Jerome, il faudrait que tu comprennes que le cookie est une information stockée sur le poste client.
Si tu stockes un panier dedans, tu t'exposes à plusieurs problèmes :
- possibilité de piratage (ce n'est pas compliqué de modifier un prix ou un total une fois que le cookie est découvert)
- tu augmentes le volume de données transmis entre le poste client et le serveur
- si les cookies sont désactivés par le client, ton système ne fonctionne plus du tout
Il est beaucoup plus intéressant de passer par les sessions
- le panier est stockée sur le serveur, sans possibilité pour le client d'y accéder directement ( => sans passer par ton code PHP)
- la seule information envoyée au client est l'identifiant de la session (moins de volume)
- si le client n'accepte pas les cookies, les serveurs sont configurés pour transmettre cet identifiant en GET, et ce, automatiquement, donc sans ajouter de code dans ton programme.
Posté : 08 mai 2008, 12:24
par M.Jerome
- possibilité de piratage (ce n'est pas compliqué de modifier un prix ou un total une fois que le cookie est découvert)
Oui, mais je pense qu'un minimum de réflexion aura abouti à ne stocker que les IDs des articles, le client peut faire ce qu'il veut avec les IDs, si il le change manuellement, il aura un autre produit avec le prix qui lui correspond, en espérant qu'il tombe sur moins chère .
Mais tu as tout de même raison, les sessions, c'est le mieux.
Posté : 08 mai 2008, 13:13
par zeus
bah, en arriver à stocker le panier en cookie montre, selon moi, une mauvaise réflexion. (c'est pas à prendre comme une critique méchante)
Donc, je préfère être complet et donner un aperçu générale
