Un Tableau dans un cookie en php help

Résolu
Mohssine -  
 mohssine -
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^^

A voir également:

2 réponses

AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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
mohssine
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Euh... les paniers, il faut les enregistrer en base aussi
0
mohssine
 
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