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 :

Plusieurs paniers sur le même site


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 53
    Points : 53
    Points
    53
    Par défaut Plusieurs paniers sur le même site
    Bonjour à tous,

    mon problème réside dans le fait que mon site est en quelques sorte un "annuaire" regroupant plusieurs sites boutique en partenariat. Donc lorsqu'un client arrive sur le site, il peut choisir la boutique qu'il désire consulter, et ensuite voir la liste des articles ( récupérée depuis une BDD ) et les ajouter à son panier. Mais cela sans jamais être redirigé vers un autre site.

    Le problème, c'est que si le client revient sur la page de choix de boutique et choisit une nouvelle boutique, et bien ma variable de session panier ne se vide pas, et donc le panier est commun à toute les boutiques du site.

    Est-il possible de gérer plusieurs paniers sur un même site, ou bien je dois vider mes variables à chaque retour sur la de choix de boutique ? ( même si ce n'est pas très user friendly, puisque le client serait donc obligé, une fois son panier rempli, de le valider de suite ).

    Et si je dois la vider, le mieux serait unset() ou $_SESSION = array(); ?

    Et dernière question, mon panier est sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION['panier']=array();
    $_SESSION['panier']['idBoutique'];
    $_SESSION['panier']['libelleProduit'] = array();
    $_SESSION['panier']['qteProduit'] = array();
    $_SESSION['panier']['prixProduit'] = array();
    si j'utilise unset(), dois je l'utiliser que sur $_SESSION['panier'], ou sur chaque champ ?

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    tu devrais gérer ton panier plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['panier'][$id_boutique] = array();
    ainsi tu conserves le panier relatif à chaque boutique même au changement de boutique par le client.

    Pour purger les données de session : il faut voir si tu veux tout purger ou quelques clés :
    tout purger : $_SESSION = array(); ou unset($_SESSION['panier'][$id_boutique]; pour les données du panier d'une boutique spécifique par exemple

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux éventuellement faire un tableau de paniers indexé par l'id de la boutique et afficher pour chaque boutique le panier de la boutique uniquement.

    EDIT : grillée par rawsrc
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Le champ ['idBoutique'] serait rajouter au champs existants ? ou alors je revois toute la construction du panier ?
    Parce que j'avais essayé de rajouter un champ sur l'id de la boutique en plus de ceux la, mais le problème c'est que mon panier ne s'affiche effectivement pas dans les autres boutiques, à condition qu'elles n'ai pas encore d'articles. Par contre le panier était commun à toutes les boutiques ayant des articles.
    Bon après j'ai peut être juste mal fait mon test avant l'affichage. Parce que si je gère un idBoutique dedans, je dois le modifier à chaque fois par rapport à la boutique visitée sur le moment, jusque la pas de problème. Mais du coup je peux pas tester si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['panier']['idBoutique'] == $_SESSION['idBoutique']
    ( l'id que je récupère quand on choisit la boutique ), car ils seront forcément toujours identique, et j'afficherai alors tout le panier.

    Je ne sais pas si je suis bien clair ^^, sinon je met la partie de code concernée par le test.

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Pour t'en sortir, tu devrais renvoyer à chaque ajout d'article au panier l'id de la boutique qui en est à l'origine.

    ensuite pour afficher tes articles groupés ou pas par boutique ceci est suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach ($_SESSION['panier'] as $id_boutique => $panier)
    {
        // avec $id_boutique tu peux grouper l'affichage
        foreach ($panier as $article)
        {
            // $article['id']
            // $article['quantite']
            // $article['puht']
            // ...
        }
    }

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Ok, merci beaucoup pour votre aide, je vais tester ça cet aprem.

    Bonne fin de journée à tous.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    viens mettre ma vision de cette gestion pas si anodine que ca :

    1 ) un user est connecté via un couple login + mdp, ceci étant un token de session lui est attribué

    en bdd : user_log ( user_id , token , etat ) -> 321 , 101201248121_121298888 , start
    en php : $_SESSION['101201248121_121298888'] = array();


    2 ) un user viens sur une page, sur laquelle il faut qu'il remplisse un pannier

    a ) ce user est connecté -> il a une session en bdd
    b ) ce user n'est pas connecté -> le token du user est un token aléatoire, comme celui crée pour la session en bdd 10133345435121_121223888

    3 ) dans le cas de multiples paniers, nous disposons dans des deux cas d'un id de session. par contre, nous ne savons pas encore comment remplir le panier

    prenons en compte que le panier et la session en elle même fonctionne via les URLS , imaginons :
    /maboutique-sport/ qui doive avoir un panier différent de
    /maboutique-jardinage/

    il est a ce moment tout a fait possible de diviser le premier token en 2, quand la personne est sur /maboutique-sport/ $_SESSION['101201248121_121298888'][panier][sport] = array(); quand la personne est sur jardinage $_SESSION['101201248121_121298888'][panier][jardin] = array();

    à ce moment précis, les sessions sont divisibles très simplement en couple ( url / spaceNameSession ) VS (/maboutique-jardinage/ -> [panier][jardin])


    enjoy it
    Conception / Dev

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Bonjour à tous.
    Bon je n'ai pas encore eu le temps de tester puisque j'étais en réunion vendredi après-midi. Je me remets sur le site ce matin.

    ascito, ta méthode, si j'ai bien compris, me ferai créer un champ de panier par boutique ? Le problème, c'est que les commerçants s'inscrivent eux même sur le site au fur et à mesure, et ensuite administre eux même leur boutique par un espace admin qui leur donne accès à leur boutique ( et seulement la leur ) grâce à leur log, donc je ne sais pas à l'avance qui ils sont, ni combien ils seront.

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

Discussions similaires

  1. Plusieurs vues sur un même fichier
    Par minicat dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/05/2014, 21h53
  2. Plusieurs favicon sur un même site
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/01/2011, 08h08
  3. [Débutant] Plusieurs versions sur un même système ?
    Par castaka dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/02/2005, 10h21
  4. ASP + PHP sur un même site ?
    Par zouritte dans le forum ASP
    Réponses: 8
    Dernier message: 14/11/2004, 22h20
  5. Réponses: 4
    Dernier message: 14/10/2004, 17h36

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