Prob de panier ça rend dingue

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Prob de panier ça rend dingue

par Gico » 09 nov. 2005, 00:33

trouvé,
c'est cette ligne qui "ecrasait le tableau"
$_SESSION['liste'] =array();

merci

par Gico » 09 nov. 2005, 00:21

il me semble que c'est ici que ça ce passe, plus particulièrement dans les deux dernières lignes, y a t'il une erreur ?

if ($ajoutPanier=="AJOUTER" && $present == false)
{ 
$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;
}

par Gico » 08 nov. 2005, 23:01

oui, vaguement, parce que j'avais déja commencé le miens sur un autre modèle, je me l'étais mis en signet pour étudié ça a un moment...peut etre que je devrais m'y mettre maintenant. C'est quand même prise de tête ces script qui fonctionnent nickel en local et a l'opposé en ligne !

par Cyrano » 08 nov. 2005, 22:49

Pour le formatage, c'est aussi vrai pour tes lecteurs que pour toi même note bien.

As-tu regardé mon tuto sur les paniers ?

par Gico » 08 nov. 2005, 22:37

Les informations stockées sont bonnes jusqu'au second ajout d'un article, la le tableau se vide alors. En local, pas de probleme, le tableau se met a jour avec chaque article ajouté...
Désolé pour le formatage du code, je vais y travailler.

par Cyrano » 08 nov. 2005, 22:19

Ton code est tout compacté et un peu ilisible: aère donc, même pour toi. Je voudrais pas être à ta place dans six mois quand tu auras besoin d'y faire une modification pour ajouter un détail.

Pour vérifier ton système, ajoute donc un var_dump($_SESSION) au début du code histoire de voir ce que tu as au juste de stocké comme informations.

Prob de panier ça rend dingue

par Gico » 08 nov. 2005, 21:17

Bonjour
je réitère ma demande d'aide, pour ce script de panier qui fonctionne en local et plus en ligne. J'ai tout tester les variable de sessions sont bien gerées par l'hebergeur...
En local tout ce passe normalement, lorque j'ajoute un article et que j'arrive a ce script,l'article est ajouté au tableau "liste". En ligne le tableau liste prend le premier article et se vide au second
Si quelqun pouvais m'expliquer ce qui se passe...merci d'avance


<?php
session_start(); 
require_once('../Connections/connexioncentrale_db.php'); 
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['articles'];
	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");
}
?>