Je réalise un caddie d un site de commerce electronique, je met mes cookies a jour en début de page, cette meme page devant par la suite recuperer les valeurs du cookies pour mettre a jour le caddie. Je suis confronté au pb suivant:
Citation :
Bien que mettant mes cookies a jour en début de page, la page récupere les anciennes valeurs du cookie, aussi pour avoir accés a mes nouvelles valeurs je dois faire un refresh de ma page... Je pense que j ai du foiré qqch dans ma programmation mais je vois pas quoi ... Qqn a une idée
|
Ci-joint le code en début de page qui met a jour mon cookie
(index.php ligne 1->29)
Code :
- <?
- if ($recalculer)
- {
- $i=0;
- $arr2 = array(); //Declaration d un tableau
- $arr = explode ("&",$caddie); //Recup des produits caddie
- foreach ($arr as $k=>$elem)
- {
- $i++;
- if ($i%2 == 1)
- {
- $j=($i+1)/2;
- $var="quantite"."$j";
- $var2=${$var};
- if ($var2 > 0)
- {
- array_push($arr2,"$elem" );
- array_push($arr2,"$var2" );
- }
- }
- if ($i%2 == 0)
- {
- }
- ${"c_$k"} = $elem;
- }
- $val = implode("&",$arr2);
- setcookie ("caddie","$val", time()+144000);
- }
|
et le code qui affiche les valeurs du cookie dans cette meme page(index.php ligne ... trés loin)
Code :
- if ($caddie)
- {
- $valeur=0;
- $fdp=0;
- $poids=0;
- $i=0;
- $arr = explode ("&",$caddie);
- $nbre = sizeof($arr) / 2;
- ?><form method="post" name="commander" action="<? echo $PHP_SELF."?".SID ?>"><?
- foreach ($arr as $k=>$elem)
- {
- $i++;
- if ($i%2 == 1)
- {
- $p = $elem;
- }
- if ($i%2 == 0)
- {
- $prixresult = @mysql_query ("SELECT * FROM produit WHERE num_pro='$p'" );
- $prt = mysql_fetch_array($prixresult);
- //Calcul du total de la cmd
- $valeur+=$elem*$prt[prix];
- //Calcul des fdp de la cmd
- if ($prt[num_livraison])
- {
- $livresult = @mysql_query ("SELECT * FROM livraison WHERE num_livr='$prt[num_livraison]'" );
- $lvr = @mysql_fetch_array($livresult);
- $fdp+=$lvr[prix_livr]*$elem;
- }
- else
- {
- $poids+=$prt[poids]*$elem;
- }
- ?><tr class=produit><td><? print replace($prt[nom_pro]); ?></td><td align="right"><input type=text name="quantite<?print replace($i/2); ?>" style="width:30px" value="<? print replace($elem); ?>" maxlength="3"></td><td align="right"><? print replace($prt[prix]); ?> ?</td><td align="right"><? print replace($prt[prix]*$elem); ?> ?</td></tr><?
- }
- ${"c_$k"} = $elem;
- }
- // Calcul de la livraison poids
- $livresult = @mysql_query ("SELECT * FROM livraison WHERE poidmin<'$poids' AND poidmax>'$poids' ORDER BY prix_livr ASC" );
- $lvr = @mysql_fetch_array($livresult);
- $fdp += $lvr[prix_livr];
- $valeur +=$fdp;
- }
|