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 :

[Cookies] Stocker un tableau récursif dans un cookie


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut [Cookies] Stocker un tableau récursif dans un cookie
    Bonjour tout le monde,

    j'ai un petit souci avec un site de vente que je dois creer, je voudrais gerer le panier via les cookies. mais le souci c'est que je n'arrive pas a ajouter un element supplementaire dans un cookie.

    je m'explique:

    le client clique sur 'ajouter au panier', l'identifiant de l'article est alors stocké dans le cookie, ensuite la ou je bloque c'est que je voudrais que lorsqu'il rajoute un second article, le cookie prenne l'identifiant du premier article + celui du second. et ainsi de suite pour les suivants (1erID et 2ndID et 3emeID.....)

    Si vous avez des idées de mise en oevre je suis preneur
    moi j'ai pensé a faire un tableau mais je sais pas trop comment le faire concretement

    En vous remmerciant

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Moi je ferai comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1 - Je regarde si le cookie existe
    2 - Si oui je récupère son contenu
       2.1 - J'ajoute à la variable le nouvel identifiant
       2.2 - Je recré le même cookie avec la nouvelle variable pour écraser l'ancien
    3 - Sinon
       3.1 - Je créé le cookie avec le premier identifiant
       3.2 - Je renviens au 2)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    oui, c'est justement à l'etape 2.1 que je bloque, je n'arrive pas a ajouter un nouvel enregistreement dans la variable existante et qui contient déjà des valeurs, du moins, je ne vois pas trop comment faire, en fait..

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Moi je ferai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (isset($_COOKIE['ton_cookie'])) {
       $content = $_COOKIE['ton_cookie'];
       echo $content; // pour vérifier mais à enlever
       $content .= "-".$nouvelle_id; // le "-" c'est pour les séparer
       setcookie("ton_cookie", $content, time()+3600);  // expire dans une heure
    }
    else {
       setcookie("ton_cookie", $nouvelle_id, time()+3600);  // expire dans une heure
    }

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    C'est possible d'utiliser un tableau dans les cookies ?

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai ma réponse dans la doc ^^
    Donc je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    setcookie("produits[12]", "1" );
    setcookie("produits[13]", "3" );
    setcookie("produits[18]", "1" );
     
    // Après avoir rechargé la page :
    if (isset($_COOKIE['produits'])) {
       foreach ($_COOKIE['produits'] as $id => $nb) {
           echo "$id : $nb <br />\n";
       }
    }
    ?>

  7. #7
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Bon je me tais ^^

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    euh dslé si ca vous parait une question bete mais ca correspond a quoi les 12,13 et 18 en ID pour le tableau produit.
    Comment je pourrais faire ca en dynamique ?

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ben c'est l'id du produit. pour chaque id tu mets la quantité.
    Imaginons que tu ais un petit plus dans le panier pour augmenter la quantité de 1 pour un produit d'id 34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="?action=incrementer&id=34">+</a>
    en php :
    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
     
    <?php
     
    if ($_GET['action'] == 'incrementer') {
       //On stocke sous forme de tableau
       $cookie = 'produits['. $_GET['id'] .']';  
     
       //On récupère l'ancienne quantité, à défaut c'est 0
       $nb = isset($_COOKIES[$cookie]) ? $_COOKIES[$cookie] : 0;
     
       //On stocke la nouvelle quantité
       setcookie('produits['. $id .']', $nb + 1);
    }
     
    ?>
    Pas testé, à adapter.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/06/2012, 17h19
  2. [PHP 5.0] Stocker un panier (objet) dans un cookie
    Par JediMaster dans le forum Langage
    Réponses: 6
    Dernier message: 01/05/2009, 02h30
  3. [Cookies] Variable arrondie mais pas dans le cookie
    Par afrodje dans le forum Langage
    Réponses: 7
    Dernier message: 17/04/2008, 12h12
  4. [MySQL] Stocker un tableau 1D dans une BDD ?
    Par supergrey dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/09/2007, 21h48
  5. [Cookies] stocker le nom de la session dans un cookie
    Par agencep dans le forum Langage
    Réponses: 10
    Dernier message: 23/02/2006, 15h18

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