Different cookies dans un meme navigateur
Résolu
sahar1994
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
sahar1994 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
sahar1994 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
je suis entrain de réaliser un siite e-commerce, pour realiser le panier j'ai utilisé les cookies, de telle façon que lorsque l'utilisateur(connécté est qui a un id_client) ajout qq chose à sa panier elle sera stocker, tous va bien mais lorsque je me connecte avec un autre client(id_different) il continu à stocker dans le méme panier...
voici mon code:
Bonjour,
je suis entrain de réaliser un siite e-commerce, pour realiser le panier j'ai utilisé les cookies, de telle façon que lorsque l'utilisateur(connécté est qui a un id_client) ajout qq chose à sa panier elle sera stocker, tous va bien mais lorsque je me connecte avec un autre client(id_different) il continu à stocker dans le méme panier...
voici mon code:
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'magsin/details1.php';
$cat = $_GET['cat'];
$s_cat = $_GET['s_cat'];
$prix = $_GET['prix'];
$nom_product = $_GET['nom_product'];
$taille = $_GET['taille'];
$couleur = $_GET['couleur'];
$quantitie = $_GET['quantitie'];
$items = array();
$items[] = array(
'cat' => $cat,
's_cat' => $s_cat,
'nom_product' => $nom_product,
'prix' => $prix,
'taille' => $taille,
'couleur' => $couleur,
'quantitie' => $quantitie,
);
$domain = (($_SERVER['HTTP_HOST']) != 'localhost'?'.'.$_SERVER['HTTP_HOST']:false);
$query="SELECT * FROM `products` WHERE `cat`='".$_GET['cat']."' AND `s_cat`='".$_GET['s_cat']."' AND `nom_product`='".$_GET['nom_product']."' AND `prix`='".$_GET['prix']."'AND couleur='".$_GET['couleur']."' AND taille='".$_GET['taille']."'";
$query1=$bdd->prepare($query);
$query1->execute();
$query2 = $query1->fetchAll();
foreach($query2 as $row){
if($cart_id != ''){
$cartq = "SELECT * FROM cart WHERE id ='{$cart_id}'";
$cartq1=$bdd->prepare($cartq);
$cartq1->execute();
$cartq2 = $cartq1->fetchAll();
foreach($cartq2 as $cartq2){
$prv_items= json_decode($cartq2['items'],true);
$item_match = 0;
$new_items=array();
foreach((array)$prv_items as $pitem){
if($items[0]['cat'] == $pitem['cat'] && $items[0]['s_cat'] == $pitem['s_cat'] && $items[0]['prix'] == $pitem['prix'] && $items[0]['nom_product'] == $pitem['nom_product'] && $items[0]['taille'] == $pitem['taille'] && $items[0]['couleur'] == $pitem['couleur']){
$pitem['quantitie'] = $pitem['quantitie'] + $items[0]['quantitie'];
if($pitem['quantitie'] > $row['stock']){
$pitem['quantitie'] = $row['stock'];
}
$item_match = 1 ;
}
$new_items[] = $pitem;
}
}
if($item_match != 1){
$new_items = array_merge($items, (array)$prv_items);
}
$items_jason = json_encode($new_items);
$cart_expire = date("Y-m-d H:i:s",strtotime("+30 days"));
$query= "UPDATE cart SET items='{$items_jason}',expire_date='{$cart_expire}' WHERE id ='{$cart_id}'";
$stm1=$bdd->prepare($query);
$stm1->execute();
setcookie(CART_COOKIE,'',1,"/",$domain,false);
setcookie(CART_COOKIE,$cart_id,CART_COOKIE_EXPIRE,'/',$domain,false);
}
else
{
echo $row['nom_product']." added to your cart";
$items_json = json_encode($items);
$cart_expire = date("Y-m-d H:i:s",strtotime("+30 days"));
$query= "INSERT INTO cart (items,expire_date) VALUES ('{$items_json}','{$cart_expire}')";
$stm1=$bdd->prepare($query);
$stm1->execute();
$cart_id = $bdd->lastInsertId();
setcookie(CART_COOKIE,$cart_id,CART_COOKIE_EXPIRE,`/`,$domain,false);
}
}
?>
A voir également:
- Different cookies dans un meme navigateur
- Navigateur web - Guide
- Supprimer les cookies - Guide
- Navigateur privé - Guide
- Extension de navigateur - Guide
- Navigateur apk - Télécharger - Navigateurs
1 réponse
Bonjour,
Tu donnes le même nom à ton cookie en permancence .. normal qu'il n'en créé qu'un .....
Il faudrait que tu puisses lui donner un nom "variable" basé sur l'ID du user par exemple.
Sinon tu pourrais aussi stocker les données sous forme d'array dans un seul cookie... La clé de l'array pour savoir à qui appartiennent les données serait là aussi l'ID du user par exemple.
Tu peux t'appuyer sur l'exemple présent ici : https://www.php.net/manual/fr/function.setcookie.php
Dans le chapitre : Exemple #3 setcookie() et les tableaux
Tu donnes le même nom à ton cookie en permancence .. normal qu'il n'en créé qu'un .....
Il faudrait que tu puisses lui donner un nom "variable" basé sur l'ID du user par exemple.
Sinon tu pourrais aussi stocker les données sous forme d'array dans un seul cookie... La clé de l'array pour savoir à qui appartiennent les données serait là aussi l'ID du user par exemple.
Tu peux t'appuyer sur l'exemple présent ici : https://www.php.net/manual/fr/function.setcookie.php
Dans le chapitre : Exemple #3 setcookie() et les tableaux
sahar1994
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
merciiiiii :) ça fonctionne bien :D j'ai changer la valeur du cookie au valeur $_SESSION['id_client'] :) au fait c'étais mon premier contact avec les cookies et j'ai méme pas compris ce que ce passe dans le tuto :p