Variable de session

333bob333 Messages postés 7 Statut Membre -  
 kernel01 -
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.

2 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
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()
0
kernel01
 
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;
}
}
}
}
0