IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme ajout au panier


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Points : 19
    Points
    19
    Par défaut Probleme ajout au panier
    Bonjour

    J'ai un probleme la fonction ajout au panier ne fonctionne pas bien et il me semble que c'est un problème de session.
    Sur se site hybride-test11.com lorsque j'ajoute un article au panier la focntion marche bien j'ai bien le message alert pour me dire que le produit à été ajouté et effectivement dans mon panier en haut à droite j'ai un article, mais le probleme c'est que lorsque je change de catégorie ou de page le panier se remet à 0 et sur d'autre page j'ai bien mon panier à 1 article.

    Quelqu'un pourrati til me donner une piste ou chercher ? Merci d'avance
    Voici le code de la page cart

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    	// Attribution d'un n° de caddie au client potentiel
    	//if (!isset($_SESSION['cart'])) $_SESSION['cart'] = "cart-".substr($_SERVER['REMOTE_ADDR'],0,8).random(10); echo $_SESSION['cart'];
     
    	session_start();
     
        // Vide le panier (action utilisateur : click sur lien Vider)
    	if (strpos($thisPageUrl, "-llemptycart")>0) $_SESSION['cart'] = null;
     
    	if (trim($_SESSION['cart'])===",") $_SESSION['cart'] = null;
    	if (strpos($_SESSION['cart'], ',')===0) $_SESSION['cart'] = substr($_SESSION['cart'], 1);
     
    	// Si achat d'un article
    	if (isset($_GET['llbuy']))
    	{
    		$buyObj = trim($_GET['llbuy']);  // Identifiant uid de l'objet acheté	
     
    		$cart = $_SESSION['cart'];
    		if ($cart)
    			{
    				$items = explode(',',$cart); //echo $cart; print_r($items);
    				if (!in_array($buyObj, $items)&&($buyObj!=null)) $cart .= ','.$buyObj;
    			}
    		  else
    			$cart = $buyObj;
     
    		$_SESSION['cart'] = $cart;
    	}
     
    	function writeShoppingCart() 
                    {
    			$cart = $_SESSION['cart'];
     
    			if (!$cart) {
    				return '<p>Panier vide</p>';
    			} else {
    				// Parse the cart session variable		
    				$items = explode(',',$cart);
    				$s = (count($items) = 1) ? 's':'';
    				return '<p><a href="?shopcart=true"><b>Mon Panier ('.count($items).')</b></a></p>';
    			}
    		}
     
    ?>
     
    <fieldset class="cart">
     
    	<div style="padding:10px 3px 3px 3px; width: 100px; height: 30px;" align="center">
    		<img src="../../../../cart.jpg" width="26" height="20" align="left" /><?php echo writeShoppingCart(); ?>
    	</div>
    </fieldset>
    <br/>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    les deux premieres lignes, heureusement qu'elles sont commentées parce qu'à cet endroit c'est criminel.

    faire un var_dump($_SESSION); juste apres session start est une bonne solution.



    pour être precis je ferai ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    session_start();
    function myVarDump(&$var)
    {
    echo '<pre>';
    var_dump($_SESSION);
    echo '</pre>';
    }
    if ( isset($_GET['DEBUG']))
    {
    myVarDump($_SESSION);
    }
     
    //tout mon code
    // fin du document 
    myVarDump($_SESSION);

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (strpos($thisPageUrl, "-llemptycart")>0 or (trim($_SESSION['cart'])===",") )
    { 
    echo "vide panier";
    $_SESSION['cart'] = null;
    }
    if (strpos($_SESSION['cart'], ',')===0)
    {
     $_SESSION['cart'] = substr($_SESSION['cart'], 1);
     echo "truc bizarre";
    }
    si tu es obligé d'avoir ce genre de truc c'est que ton appli est plutot crade... bon courage pour la maintenance... d'autant plus que tu pourait stocker des objet complexe dans $_SESSION['cart'] comme des tableaux (ou des objets qui peuvent surcharger __sleep() et __wakeup()) ... pas que des chaines... d'ailleurs $_SESSION est déjà un tableau !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Points : 19
    Points
    19
    Par défaut Merci de ton aide
    Ce n'est pas pas qui est moi qui est ce code c'est un webmaster et justement je voudrais le corriger car il y a des bug sur le système de panier j'ai l'impression qu'il ne garde pas en mémoire le nombre de produit en focntion de l'utilisateur enfin bon je suis d'accord avec toi pour la qualité du code mais pourrait tu m'aider à avoir un ode pour le panier qui fonctionne ? Merci d'avance

Discussions similaires

  1. Probleme Ajout enregistrement dans un formulaire
    Par lawokgluot dans le forum IHM
    Réponses: 11
    Dernier message: 27/04/2007, 07h44
  2. Problème Ajout Entrée dans LDAP
    Par scare dans le forum Réseau
    Réponses: 5
    Dernier message: 13/12/2006, 11h31
  3. probleme ajout tableau word(après lecture faq)
    Par dederfred dans le forum Delphi
    Réponses: 2
    Dernier message: 29/11/2006, 14h38
  4. Iptables - problème ajout de règle
    Par byloute dans le forum Sécurité
    Réponses: 3
    Dernier message: 25/04/2006, 11h42
  5. Probleme ajout label dans une fenetre
    Par sorry60 dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 05/11/2005, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo