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 :

$_SESSION dans une e-boutique


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut $_SESSION dans une e-boutique
    Bonjour à tous,

    Je suis en train de finir de créer ma première e-boutique et c'est laborieux...

    Mais il me vient plusieurs questions résumées en 2 brèves (peut-être...) :

    1 - Comment attribuer un achat au bon acheteur ? En effet, supposons qu'il y ait 3 ou + visiteurs simultanément, comme s'y retrouver ? Je sais bien sûr qu'il y a la possibilité de donner une id à la $_SESSION, (je ne veux pas me servir de cookies, au cas où) et même, plus subtil, d'intégrer l'IP du visiteur comme identité de reconnaissance.

    J'ai donc, supposons, 3 ips : $ip1, $ip2 et $ip3. Cela me rend bien beau.... A qui je vends mon article ?

    Bref, est-ce que les $_SESSION sont en vrac en mémoire ou associées à une page précise (dans ce cas plus de problème mais, alors, à quoi peut bien servir une id de session ?) ?

    2 - Accessoirement, une autre question, le visiteur a acheté 5 pommes. Bon ! Je n'ai pas créé, bien entendu, de $_SESSION qui reprenne les 10 000 arclicles en stock donc chaque donnée de $_SESSION est créée au fur et à mesure des commandes.

    Je vais me retrouver avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $_SESSION["carottes"] = 2;
    $_SESSION["poires"] = 3;
    $_SESSION["pommes"] = 5;
    $_SESSION["poireaux"] = 1;
    $_SESSION["courgettes"] = 3;
    $_SESSION["tomates"] = 2;
    $_SESSION["poivrons"] = 1;
    Arrive une commande de 5 pommes.

    Un nouveau champ est créé :

    $_SESSION["pommes"] = 5;

    donc 2 fois $_SESSION["pommes"] = 5; au lieu de $_SESSION["pommes"] = 10; ce qui au niveau du panier et/ou du bon de commande est assez lourd...

    Il faudrait donc faire une boucle pour savoir s'il existe déjà une donnée $_SESSION["pommes"] mais avec quel compteur. Peut-on connaitre le nombre de données d'une $_SESSION ?

    Merci de votre indulgent soutien.

    Cordialement.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ouille
    Je te conseille de renforcer tes connaissances dans la manipulations des tableaux et des sessions avant de continuer.
    Tu vas sinon perdre un temps précieux.

    1 - Les sessions ne se melangent pas.
    Quand une session est créé, elle fournit au navigateur de l'utilisateur un ID qui l'indentifie individuellement.
    Les données de la session sont stockées dans un fichier individuel

    2 - Les tableaux
    $_SESSION est un tableau PHP.
    Tu ne peux pas avoir plusieurs fois "pommes" comme clef.
    Si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION["pommes"] = 5;
    $_SESSION["pommes"] = 5;
    $_SESSION["pommes"] vaudra 5

    Pour augmenter ta valeur de pommes il faut faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["pommes"] = $_SESSION["pommes"] + $quantite
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut
    Merci de ta prompte réponse.

    Je suis assez peu compétent mais je lis et j'étudie pas mal avant de déranger les autres. Ce n'est pas pour autant que je comprends tout...

    Ce que tu me dis, je crois que je le savais, sauf que, si je t'ai bien compris, si Mr Durand achète x article(s), je n'ai pas à me tracasser pour savoir de quelle $_SESSION il s'agit, elle s'y retrouve toute seule en fonction du navigateur du dit Mr Durand. C'est bon, jusque là ?

    Ca, je ne l'avais pas intégré...

    Pour les données en doublon, que faire ? A chaque entrée il faut tester si elle n'existe pas déjà ? Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    if(!isset($_SESSION["pomme"]))  {
          $_SESSION["pomme"] = 5;
    }  else  {
          $_SESSION["pomme"] = $_SESSION["pomme"] + $quantite;
    }
    Pour des tableaux de SESSION à multiple dimension, ce qui est mon cas,

    $_SESSION["categorie"]["sousCategorie"]["matiere"]["couleur"]

    ça va pas est court à mettre en place... Il n'y a pas plus simple ?

    Je tiens à te remercier encore pour ton aide.

    Cordialement.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    1 - oui c'est tout a fait le navigateur du client et le serveur dialoguent en se transmettant l'id de session que tu peux voir en faisant echo SID;

    2 - tout depend de comment tu définis la quantité lors de l'ajout au panier.

    3 - Etant donné qu'un article commandé n'a qu'une seul valeur pour chaque caracteristique, je ferrais comme ca :
    array(id_produit,categorie,sous-categorie,matiere,couleur)

    cela permet d'obtenir immédiatement une caracteristique sans se soucier d'une hierarchie.
    exemple :
    mon premier article est un produit de reference $_SESSION[0]['id_produit'] choisi dans la couleur $_SESSION[0]['couleur']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut
    C'est une excellente stratégie. Je vais faire comme ça.

    Merci du tuyau.

    Très cordialement.

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

Discussions similaires

  1. Intégration d'une boutique en ligne dans une site web
    Par seigneur dans le forum E-Commerce
    Réponses: 4
    Dernier message: 24/05/2011, 20h45
  2. [MySQL] Utiliser des valeur SQL de type float dans une bdd pour boutique/panier
    Par sybil dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/03/2011, 16h45
  3. Modifier $_SESSION dans une fonction
    Par FabaCoeur dans le forum Langage
    Réponses: 8
    Dernier message: 29/11/2009, 17h32
  4. Réponses: 4
    Dernier message: 23/07/2006, 21h42
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 14h39

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