8797 sujets

Développement web côté serveur, CMS

bonsoir

J’aimerais recuperer les informations de mon panier pour les affichées dans une autre page

pouvez vous m'aider ?


merci

fanny

voici le code de mon panier

<?php
session_start();
//init des variables
if (!isset($_SESSION['total'])) $_SESSION['total']=0;
if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
else  $ajoutPanier=$_GET['ajoutPanier']; 
if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
else $modifPanier=$_GET['modifPanier'];
if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré
else $suppPanier=$_GET['suppPanier'];
if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré
else $enregistreCommande=$_GET['enregistreCommande'];
if ((!isset($_SESSION['liste']))&&($ajoutPanier=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];//recup de la liste de la session
?>
<?php require_once('../Connections/Connexion.php'); ?>
<?php 
mysql_select_db($database_Connexion, $Connexion);
//----------------------------------------------------AJOUT PANIER
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
}
//----------------------------------------------------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");
}
 ?>





<?php
		   $total=0.00;
  for ($i=0;$i<count($liste);$i++)
{
	$query_rsPanier="select * from articles where reference = '".$liste[$i][0]."'";
	//echo $query_rsPanier;
	$rsPanier = mysql_query($query_rsPanier, $Connexion) or die(mysql_error());
    $row_rsPanier = mysql_fetch_assoc($rsPanier);		
	?>
          <tr> 
            <td><div align="center" class="Style3"><font size="2"><?php echo $row_rsPanier['titre'] ?></font></div></td>
            <td><div align="center" class="Style3"> 
                <select name="nb<?php echo $i ?>" id="nb">
                  <option value="1"  <?php if($liste[$i][1]==1) echo "SELECTED"; ?>>1</option>
                  <option value="2" <?php if($liste[$i][1]==2) echo "SELECTED"; ?>>2</option>
                  <option value="3" <?php if($liste[$i][1]==3) echo "SELECTED"; ?>>3</option>
                </select>
              </div></td>
            <td><div align="center" class="Style3"><font size="2"><?php echo $row_rsPanier['prix'] ?></font></div></td>
            <td><div align="center"><a href="panier.php?suppPanier=SUPPRIMER&article=<?php echo $row_rsPanier['reference'] ?>"><img src="../images/clic.gif" width="14" height="13" border="0"></a></div></td>
          </tr>
          <?php
 	
	$total+=$row_rsPanier['prix'] * $liste[$i][1];
}
$_SESSION['total']=$total;//mAj du total dans la session

?>

Modifié par fanny742 (06 Feb 2008 - 16:25)
trés trés rapidement lu en travers.

je vois des sessions partout. l'etat de ton panier n'est-il pas conserver dans des variables sessions? auquel cas tu as acces a ces informations depuis n'importequ'elle page qui commence par session_start();

si tu as des choses dans une base de données c'est pas mal non plus et recupérable dans une autre page.

de toute façon pour transferer le panier je ne vois que c'est deux moyens de simple. session ou bdd. tu pourrais dans l'absolu serializer un tableau mais ce serait tellement moins evident.
Modifié par CPascal (04 Feb 2008 - 22:52)
Bonjour fanny742,

Merci d'éditer le titre de ton sujet pour autre chose que "besoin d'aide", quelque chose de concis qui caractérise ton problème par exemple Smiley smile .
bonjour Pascal,

oui les valeurs de mon panier sont stockées dans des variables de session.

Peux tu m'aider ?

merci

fanny
Le plus simple est de stocker son panier dans une variable de session qui contient l'id de l'article et la quantité, rien d'autre !

Où est le problème ? Que n'arrives-tu pas à faire ?
je veux afficher sur toutes les pages le prix total et le nombre d'articles du panier.

Ca fonctionne, j'affiche le prix total du panier, il me reste à avoir le nombre d'articles du panier.


Voila ce que j'ai fait,qu'en pensez vous ?

<?php
session_start();
//init des variables
if (!isset($_SESSION['liste'])) $liste[]=array("VIDE",0,0,0); //init de liste si vide
else $liste=$_SESSION['liste']; //recup de la liste de la session
if (!isset($_SESSION['total'])) $total=0;
else $total=$_SESSION['total'];
?>


<?php echo $liste[0][1]; ?>
<?php echo $total; ?>
Principe de fonctionnement

Pour parcourir tout ton caddie, tu fais une boucle de type foreach() et à l'intérieur de ta boucle, tu interroges ta DB pour connaitre l'article et le prix de l'article qui sont tous les deux liés à l'id stockés dans ton tableau de session.
Bonjour

merci pour ton aide Alphonse Smiley cligne

je suis allée voir sur expreg.com, c'est interessant mais je n'ai pas beaucoup d'experience et de temps devant moi, il me reste des problemes à resoudre avant de prendre le temps d'ameliorer certaines choses.

Voici mon code pour afficher le nombre d'articles du panier

<?php echo $liste=$liste[0][1]+$liste[1][1]; ?>


est il possible d'ameliorer le code pour afficher la totalité du nombre d'articles ?

fanny
Bonjour Fanny,

Avant de pouvoir faire quelques chose, il faut apprendre un minimum de base, et cela prends du temps.

Ici c'est un forum d'entre aide, mais on n'est pas là pour faire ton travail à ta place non plus.

Prends le temps de bien comprendre ce que tu fais, et tu y veras plus clair.

Avec le lien donne par Alphonse, plus celui sur foreach, en refléchissant 5 minutes, tu devrais pouvoir t'en sortir.
Modifié par Super_baloo8 (06 Feb 2008 - 13:13)
Desolé, je debute

Je me suis formée avec des livres : php mysql de jean marie de France. Les debuts ne sont pas evident, j’avais trouvé un soutien grâce à votre forum dont les reponses sont pertinentes et rapides.
Je ne veux pas abuser de votre temps mais je suis loin de comprendre la technicité des langages.

fanny
Ne sois pas désolé, mon message ne te reproches rien.

C'est juste qu'en trouvant par sois même, c'est beaucoup plus efficace (en terme d'apprentissage) que d'avoir du "tout cuit".

Si on viens ici et que l'on répond, c'est qu'on en a envie, et qu'on a le temps (quoi que, pas tout le temps Smiley biggol ) Smiley cligne

En fait en débutant, je ne pensais pas que l'on réalisé un site e-commerce (très risqué, et complexe). Dans le trop risqué, c'est le manque de sécurité sur les script. Une petite faille, et un client peut se faire livre toute les marchandise du site sans avoir a payer (je grossis beaucoup, mais c'est faisable si on ne contrôle pas tout).

J'aime bien bousculer les gens, donc je m'excuse d'avance si tu l'as mal pris

Smiley confused
Pas de probleme Smiley smile

je souhaite simplement avoir des conseils pour m’aider à prendre les bonnes decisions.

Pour la securité, je lis un livre de damien seguy et philippe gamache de la collection blanche qui j’espere m’apportera suffisamment de connaissance pour m’aider à proteger mon site.

Les risques m’ont l’air important Smiley biggol

fanny