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 :

[Sessions] probleme d'affichage de panier seulement la première fois


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Sessions] probleme d'affichage de panier seulement la première fois
    Bonjour,

    Je suis en train d'implementer un petit caddie sur mon site web et il me reste plus qu'une erreur. Après maintes recherches sur le forum et les tutoriaux je me decide à poster pour avoir un peu d'aide.
    En fait j'ai l'erreur suivante :"Warning: Invalid argument supplied for foreach()..." qui apparait lors de l'affichage du caddie. Mais el'erreur n'apparait que au premier affichage du premier article, si je "continue mes achats" ou si je "valide ma commande" le panier apparait normalement.
    Avant de poster le code quelqu'un aurait il eu un problème semblable ?

    Merci de votre aide.

    PS : j'ai réaliser mon système de panier avec des sessions.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut
    au premier logue ta session est creer ou c'est a l'ajout du premier article
    sinon intialise la
    si ca perssiste fait voir ton code

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En fait je pense qu'elle est initialisée et testée. Alors voilà le code. l'erreur se produit. L'erreur se produit au 2e foreach (en dessous du commentaire "affichage de chaque element").
    Le include.php contient les variables pour la connexion à la base de donnée.
    le functions.php contient les fonctions de calcul de prix et de nombres d'elements du caddie.
    La page precedente à celle de ce code contenait les divers produits de la categorie choisie et renvoie avec l'url la ref du produit à travers la variable "new".

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <?php
    session_start&#40;&#41;;
    require 'back-office/include.php';
    include 'functions.php';
    @ $new = $HTTP_GET_VARS&#91;'new'&#93;;
    if&#40;$new&#41;
    &#123;
    	//nouvel article selectionné
    	if&#40;!isset&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;&#41;
    	&#123;
    		$HTTP_SESSION_VARS&#91;'caddie'&#93; = array&#40;&#41;;
    		$HTTP_SESSION_VARS&#91;'items'&#93; = 0;
    		$HTTP_SESSION_VARS&#91;'total_price'&#93; = '0.00';
    	&#125;
    	if&#40;isset&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#91;$new&#93;&#41;&#41;
    		$HTTP_SESSION_VARS&#91;'caddie'&#93;&#91;$new&#93;++;
    	else
    		$HTTP_SESSION_VARS&#91;'caddie'&#93;&#91;$new&#93; = 1;
     
    	$HTTP_SESSION_VARS&#91;'total_price'&#93; = calculate_price&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;;
    	$HTTP_SESSION_VARS&#91;'items'&#93; = calculate_items&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;;
    &#125;
    if&#40;isset&#40;$HTTP_POST_VARS&#91;'save'&#93;&#41;&#41;
    &#123;   
    	foreach &#40;$HTTP_SESSION_VARS&#91;'caddie'&#93; as $ref => $quantite&#41;
        &#123;
          if&#40;$HTTP_POST_VARS&#91;$ref&#93;=='0'&#41;
            unset&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#91;$ref&#93;&#41;;
          else 
            $HTTP_SESSION_VARS&#91;'caddie'&#93;&#91;$ref&#93; = $HTTP_POST_VARS&#91;$ref&#93;;
        &#125;
        $HTTP_SESSION_VARS&#91;'total_price'&#93; = calculate_price&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;;
        $HTTP_SESSION_VARS&#91;'items'&#93; = calculate_items&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;;
    &#125;
     
    if&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&&array_count_values&#40;$HTTP_SESSION_VARS&#91;'caddie'&#93;&#41;&#41;
    &#123;
     
      global $HTTP_SESSION_VARS;
     
      //affichage de chaque element
     
      foreach &#40;$caddie as $ref => $quantite&#41;
      &#123;
     
      if &#40;!$ref || $ref==''&#41;
         return false;
     
    	$conn = mysql_connect&#40;$host, $mysql_user, $mysql_pass&#41;;
    	mysql_select_db&#40;$db_name, $conn&#41;;	
    	$sql = "select * from produit where ref=$ref";
    	$mysql_pt = mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;;
    	while&#40;$ligne = mysql_fetch_row&#40;$mysql_pt&#41;&#41;
    	&#123;
    		$ref = $ligne&#91;0&#93;;
    		$nom = $ligne&#91;1&#93;;
    		$cat_id = $ligne&#91;2&#93;;
    		$prix = $ligne&#91;3&#93;;
    		$description = $ligne&#91;4&#93;;
    		$image = $ligne&#91;5&#93;;
    ?>

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    ton erreur doit venir de $caddie je ne la voie pas definit
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      foreach &#40;$http_session_vars&#91;'caddie'&#93; as $ref => $quantite&#41;
      &#123;
     
      if &#40;!$ref || $ref==''&#41;
         return false;
    si tu est sous php4.2 ou supperieur met tes varaible global a off

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'était bien $caddie qui etait pas defini
    Merci beaucoup Jeff, à force de tourner en rond sur ce code je voyais plus très clair

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. contrôle du mot de passe seulement la première fois
    Par laurentSc dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2010, 18h22
  2. Probleme d'affichage (seulement) sous Firefox
    Par hélios44 dans le forum Firefox
    Réponses: 7
    Dernier message: 18/08/2008, 20h23
  3. Réponses: 4
    Dernier message: 14/12/2005, 09h33
  4. [langage] Problème d'affichage
    Par marcoss dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2003, 14h05
  5. IE [Applet] Plug-in problème d'affichage
    Par Tonton Luc dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/06/2003, 09h28

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