Variable de session

Bonjour,

quand on crée un caddie, on implémente le choix de l'acheteur par addsession (product_id, qte) qu'on lie ensuite à la base de données pour retrouver le prix et les autres paramètres.

Je mémorise donc par addsession deux paramètres, le productid et la quantité.
Si je veux ajouter un autre paramètre, par exemple la couleur ou la taille, comment faire??

En gros je ne sais pas comment ajouter un tableau ou plusieurs valeurs à une variable de session.

quelqu'un pourrait m'aider?

Avec visuel web dev 2008 et VB.
Configuration: Mac OS X
Safari 525.13

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    Il me semble que quand on passe un tableau en session, il faut le serializer, ça permet de le transformer en chaîne de caractère et ça le rend donc transportable.

    Pour ça tu as donc besoin de serialize() et unserialize()
    1. Suffit de changer php.ini

      session.auto-start =1

      on peut rajouter n'importe quoi dans la vrariable superglobal $_SESSIOn

      Exemple

      /*
      Nom : creation_panier
      Description : Construit le panier. Renvoie un tableau contenant rien.
      */

      function creation_panier()
      {
      if(!isset($_SESSION['panier']))
      $_SESSION['panier'] = array();
      }

      /*
      Nom : ajouter_article
      Description : Ajoute un article dans le panier en vérifier les données. Il faut mettre en paramètre un tableau correspond au tableau $_POST des fiches article ainsi que le panier. Ne fait rien en cas d'echec.
      */

      function ajouter_article($tableau_formulaire_post)
      {
      if(is_array($_SESSION['panier']) AND is_array($tableau_formulaire_post))
      {
      $nb_article_dans_panier = count($_SESSION['panier']);

      $string_id_en_entier = intval($tableau_formulaire_post['id_article']);
      $string_quantite_en_entier = intval($tableau_formulaire_post['quantite']);

      $tableau_formulaire_post_to_int = array($string_id_en_entier,$string_quantite_en_entier);
      $doublon = false;

      for($i = 0 ; $i < ($nb_article_dans_panier) ; $i++)
      {
      if($_SESSION['panier'][$i][0] == $tableau_formulaire_post_to_int[0])
      {
      $_SESSION['panier'][$i][1] += $tableau_formulaire_post_to_int[1];
      $doublon = true;
      break;
      }
      }

      if(!$doublon)
      {
      if($string_id_en_entier != 0 AND $string_quantite_en_entier != 0)
      {
      $_SESSION['panier'][$nb_article_dans_panier] = $tableau_formulaire_post_to_int;
      }
      }
      }
      }