Un Tableau dans un cookie en php help
Résolu
Mohssine
-
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^^
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:
- Un Tableau dans un cookie en php help
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Comment faire un tableau croisé dynamique - Guide
2 réponses
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
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
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');
}
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');
}
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