J'ai développé un systeme de panier en local, tout fonctionnait. Une fois installé sur le serveur j'ai un comportement bizarre comme si les variables de sessions s'effaçaient.
Lorsque j'ajoute un produit il vient bien dans le panier, ses coordonnées sont stockées dans une variable de session "liste", qui est un tableau.
Au premier article ajouté donc, tous s'affiche correctement, si je retour a la boutique pour ajouter un second article, ou meme si je clique sur "page precedente", et que je reviens au panier, plus rien ne s'affiche. le panier est vide, Il me faut fermer le navigateur pour recuperer a nouveau un panier fonctionnel - pour 1 produit.
Pourtant en local tout baigne...comprends pas...help
<?php require_once('../Connections/connexioncentrale_db.php'); ?>
<?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
mysql_select_db($database_connexioncentrale_db, $connexioncentrale_db);
$query_rsMarque = "SELECT id, marque FROM marque ORDER BY marque ASC";
$rsMarque = mysql_query($query_rsMarque, $connexioncentrale_db) or die(mysql_error());
$row_rsMarque = mysql_fetch_assoc($rsMarque);
$totalRows_rsMarque = mysql_num_rows($rsMarque);
/**
* Vérifie la présence d'un article dans le panier
*/
$reference=$_GET['VARarticles'];
function verif_panier($ref_article)
{
$present = false;
if(is_array($_SESSION['liste'][0]))
{
if(array_search($ref_article,$_SESSION['liste'][0]) != false)
{
$present = true;
}
}
return $present;
}
//----------------------------------------------------AJOUT PANIER cree liste
if ($ajoutPanier=="AJOUTER" && $present == false)
{
$reference=$_GET['VARarticles'];
$nb=1; //par défaut la quantité est = 1
$prixUnit=$_GET['prixUnit'];
$totalarticle=$nb*$prixUnit;
$liste[]=array($reference,$nb,$prixUnit,$totalarticle);
$_SESSION['liste'] = array();
$_SESSION['liste']=$liste;
}
//----------------------------------------------------MODIF PANIER
if ($modifPanier=="OK")
{
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==$i)
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 necessaire pour la page commande.
header("Location: login.php");
}
?>