8791 sujets

Développement web côté serveur, CMS

En ajoutant 2 produits identiques dans mon panier, les deux s'affichent séparement!

Et si je vais sur la page precedente de retour sur mon panier le dernier article ajouté s'affiche en double

Comment remedier a ces problemes?? Smiley rolleyes

merci





//----------------------------------------------------AJOUT PANIER
if ($ajoutPanier=="AJOUTER")
{
$reference=$_GET['reference'];
$nb=1; //par défaut la quantité est = 1
$prix=$_GET['prix'];
$liste[]=array($reference,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
//ajoute un article à la liste
}
//----------------------------------------------------MODIF PANIER
if ($modifPanier=="ACTUALISER")
{
for ($i=0;$i<count($liste);$i++)
{
$nbi='nb'.$i;
$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
$liste[$i][3]=$liste[$i][1]*$liste[$i][2];//prixArticle=nbre*prixUnitaire
}
$_SESSION['liste']=$liste;//mAj de la liste
}
//----------------------------------------------------SUPP PANIER
if ($suppPanier=="SUPPRIMER")
{
$article=$_GET['article'];
for ($i=0;$i<count($liste);$i++)
{
if($article==$liste[$i][0])
array_splice($liste,$i,1);
//suppression de l'article
}
$_SESSION['liste']=$liste;//mAj de la liste
}
//----------------------------------------------------COMMANDER
if ($enregistreCommande=="COMMANDER")
{
if(!isset($_GET['action']))
$_SESSION['action']="ENREGISTRER";//mémorise l'action
header("Location: commande.php");
}
?>
Modifié par fanny742 (24 Jan 2008 - 20:48)
Hello Fanny Smiley cligne ,
fanny742 a écrit :
En ajoutant 2 produits identiques dans mon panier, les deux s'affichent séparement!
C'est normal puique tu ne fais aucun test pour vérifier si la référence est déjà présente dans la liste du panier Smiley langue ! Tu pourrais faire quelque chose comme :
if ($ajoutPanier == "AJOUTER")
{
	$reference = $_GET['reference'];
	$nb = 1; //par défaut la quantité est = 1
	$prix = $_GET['prix'];
	$cumul = false;
	if (!empty($liste)) {
		for ($i=0; $i<count($liste); $i++)
		{
			if($reference == $liste[$i][0]) {
				$liste[$i][1] += 1; // si la référence existe déjà on ajoute 1 qté
				$liste[$i][3] = $liste[$i][1] * $liste[$i][2]; // prixArticle = nbre * prixUnitaire
				$cumul = true;
				break; 
			}
		}
	}
	if (!$cumul) {
		$liste[] = array($reference, $nb, $prix, $prix);
	}
	$_SESSION['liste'] = $liste;
	//ajoute un article à la liste
}

A+ Smiley smile
J’aimerais savoir,
lorsqu'un client ajoute un article dans le panier sans s’etre identifié, le panier est enregistré avec un ID, mais comment se comporte t’il entre les clients ?
comment proceder pour différencier les clients avant leurs identifications ?

merci
Désolé,

Exemple :
un 1er client ajoute un article dans le panier, un 2ème client arrive sur le site que trouve t’il dans le panier ?
Comment éviter la confusion entre les clients ?

merci
si les deux clients sont sur des navigateurs différents (ou des ordinateurs différents ) et bien ils ne partageront pas les mêmes sessions. et donc la pas de problème (enfin pas trop,ils restent non identifié quand même)

maintenant 2 clients sur un même navigateur un fait une commande, va voir dans la salle à manger et derriere quelqu'un arrive et rajoute quelquechose. comment les identifier l'un l'autre ? Impossible.

a moins qu'il n'y est un bouton explicite "j'ouvre une deuxieme commande dans un second panier"....avec des variables derriere et que la personne s'identifie comme 2eme client ( mais sans s'identifier...). je dirais possible avec beaucoup de variables session mais casse-geule car il faudra que les clients respecte bien la procédure.
Modifié par CPascal (25 Jan 2008 - 08:04)