Un Tableau dans un cookie en php help

Résolu/Fermé
Mohssine - 18 mars 2012 à 16:37
 mohssine - 19 mars 2012 à 16:36
Bonjour,

je viens de crée un petit script panier mais je suis bloqué ça fais 3 jours :s

l'idée donc c'est de récupérer les ID et l'ajouter dans une table à chaque fois et la table sera dans le cookie

voila le script :


<?php

if(isset($_COOKIE['id_produit'])) // Si il y a un cookie
{


$table_ids = $_COOKIE['id_produit']; // Récupérer l'ancien cookie

$new_id = $_GET['id_produit']; // Récupérer le nouveau cookie

array_push($table_ids,$new_id); // Ajouter le nouveau cookie dans la table

echo $n = count($table_ids); // Just pour tester

for($i=0;$i<$n;$i++) // Just pour tester
{
echo "<br>le cookie est ".$table_ids[$i]; // Just pour tester
}

setcookie("id_p[]",$table_ids,time()+3600); // Stocker la table contenu le nouveau ID

}

else // Si y a pas un cookie
{

$id = $_GET['id_produit'];

setcookie("id_p[]",$id,time()+3600); // Ajouter un nouveau cookie (le premier id)

echo "pas de cookie"; // juste pour tester
}

?>


le message d'erreur que j'ai c'est :

Warning: setcookie() expects parameter 2 to be string, array given in /home/mowebdoc/public_html/ajouter_panier.php on line 18

la ligne 18 contient :

setcookie("id_p[]",$table_ids,time()+3600);


Merci pour votre aide^^

2 réponses

AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
19 mars 2012 à 09:27
Bonjour,

Pour passer un tableau en cookie, vous n'avez qu'une solution : https://www.developpez.net/forums/d153974/php/langage/cookies-stocker-tableau-recursif-cookie/ Le faire valeur par valeur.

Sinon utilisez une session, ce qui est plus simple : https://forums.commentcamarche.net/forum/affich-1769694-formulaire-php-transfert-de-tableau
0
Merci
je crois la solution sur le site devloppez est pas professionnel
sinon pour les session c'est pas conseillé pour les paniers sur tous quand le visiteur quitte le site son panier sera détruit
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
19 mars 2012 à 13:48
Euh... les paniers, il faut les enregistrer en base aussi
0
C'est bon j'ai résolu le problème
voila le script :

if(isset($_COOKIE['id_pd']))
{
$ancien_id = $_COOKIE['id_pd'];
$new_id=$_GET['id_produit'];

$table = explode(",",$ancien_id);

if(in_array($new_id,$table))
{
header('location:mon_panier.php');
}
else
{
$ancien_id .= ",".$new_id;
setcookie("id_pd",$ancien_id,time() + 360000);
header('location:mon_panier.php');
}

}
else
{
$new_id=$_GET['id_produit'];
setcookie("id_pd",$new_id,time() + 360000);
header('location:mon_panier.php');

}
0