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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eCommerce] Panier sans base de données


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [eCommerce] Panier sans base de données
    Bonjour,

    J'ai téléchargé et installé les scripts du tutoriel cité plus haut.

    Tout marche jusqu'au moment où je commence à vouloir récupérer mes variables perso qui sont déclarées comme variables de session.

    J'ai dans chrome Version 39.0.2171.95.

    Le site est hébergé chez OVH.

    le message d'erreur suivant quand j'affiche mon panier :

    Warning: array_push() [function.array-push]: First argument should be an array in /home/storespe/www/TEST/fonctions-panier.php on line 46

    Le code que j'utilise est ci-dessous.

    Pouvez-vous m'aider ?

    Merci d'avance.

    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
     
    /**
     * Verifie si le panier existe, le créé sinon
     * @return booleen
     */
    function creationPanier(){
       if (!isset($_SESSION['panier'])){
          $_SESSION['panier']=array();
          $_SESSION['panier']['libelleProduit'] = array();
    	  $_SESSION['panier']['largeur'] = array();
          $_SESSION['panier']['qteProduit'] = array();
          $_SESSION['panier']['prixProduit'] = array();
          $_SESSION['panier']['verrou'] = false;
       }
       return true;
    }
     
     
    /**
     * Ajoute un article dans le panier
     * @param string $libelleProduit
     * @param int $qteProduit
     * @param float $prixProduit
     * @return void
     */
    function ajouterArticle(){
     
       //Si le panier existe
       if (creationPanier() && !isVerrouille())
       {
          //Si le produit existe déjà on ajoute seulement la quantité
          $positionProduit = array_search($libelleProduit,  $_SESSION['panier']['libelleProduit']);
     
          if ($positionProduit !== false)
          {
             //$_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
             $_SESSION['panier']['qteProduit'][$positionProduit] += $_SESSION['QUANTITE'] ;
     
          }
          else
          {
             //Sinon on ajoute le produit
             array_push( $_SESSION['panier']['libelleProduit'],	$MARQUE = substr($_SESSION['QUALITE_TOILE'],5)); 
             array_push( $_SESSION['panier']['qteProduit'], $_SESSION['QUANTITE']);
             array_push( $_SESSION['panier']['largeur'], $_SESSION['LARGEUR']);
             array_push( $_SESSION['panier']['prixProduit'], $_SESSION['PRIX_TOILE_ARRONDI']);
          }
       }
       else
       echo "Un problème est survenu veuillez contacter l'administrateur du site.";
    }
    ?>

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Bonjour,

    La première chose qui m'intrigue dans ton code est le fait qu'il n'y ait aucun moyen de différencier les produits entre eux (on dirait un panier conçu pour un seul produit). À ta place je créerais plutôt un tableau panier avec cette structure:
    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
    Array
    (
        [1231324] => Array
            (
                [lbl] => rayures
                [qty] => 12
                [wdth] => 4
                [price] => 5
            )
        [4545121] => Array
            (
                [lbl] => vintage
                [qty] => 8
                [wdth] => 4
                [price] => 6
            )
        [1234564] => Array
            (
                [lbl] => pois roses
                [qty] => 16
                [wdth] => 4
                [price] => 4
            )
    )
    où chaque entrée (1231324, 4545121, 1234564) est l'identifiant unique du produit, ce qui permet d'utiliser un simple if (isset($_SESSION['panier'][$id])) pour savoir si un produit est déjà présent dans le panier, au lieu de faire appel à array_search qui va devoir chercher dans tout le tableau.


    Ensuite je ne vois pas trop d'où peuvent sortir ces valeurs $_SESSION['QUALITE_TOILE'], $_SESSION['QUANTITE'] ... qui doivent correspondre au dernier produit que l'on souhaite ajouter au panier. Par quel mystère ces valeurs se retrouvent-elles dans la session? Ne s'agirait-il pas plutôt de données récupérées via $_POST?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Merci
    En effet, je vais plutôt retravailler tout cela sous cette forme.

    Merci pour votre aide, et votre réactivité.

    Cordialement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/03/2008, 17h07
  2. [MySQL] Sélection avec condition sans base de données
    Par covin85 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/04/2007, 09h08
  3. Postfix/imap Avec ou sans base de donnée
    Par manu7781 dans le forum Administration système
    Réponses: 1
    Dernier message: 10/04/2007, 14h30
  4. [Conception] Génération RSS sans base de données
    Par gb-ch dans le forum Langage
    Réponses: 9
    Dernier message: 16/03/2007, 17h11
  5. [CRYSTAL REPORT] Etat sans base de données
    Par chnickel dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2004, 15h44

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