Caddie,
panier, chariot... Les termes sont nombreux pour désigner une
seule et même chose : l'emplacement où le site Web stocke
une sélection d'articles, généralement en prévision
d'un "passage à la caisse".
Un caddie sert deux types de visiteurs
: ceux qui sont enregistrés sur le site, et ceux qui ne le
sont pas (encore). Dans les deux cas, le fonctionnement du caddie
est le même : l'utilisateur parcourt le catalogue disponible
sur le Web, choisit les produits qu'il désire acheter, et
en fin de parcours, regarde une dernière fois le contenu
de son caddie afin d'y apporter quelques éventuelles modification
avant de valider l'achat et de payer le tout.
Dans ce scénario classique,
tout ce qui concerne la gestion du catalogue, de l'inscription du
visiteur à la gestion du paiement ne concerne pas notre caddie
: nous partons donc du principe que vous disposez déjà
d'une telle infrastructure...
L'art des choix
Notre souci premier sera de conserver les données envoyées
par le visiteur pendant sa présence sur le site (ou "session
client") : en effet, il ne fait que passer de page en page,
sélectionnant ici ou là un ou plusieurs produits -
il s'attend logiquement à tous les retrouver dans son panier.
Pour cela, nous avons deux solutions : les cookies, ou les sessions
serveur.
Les cookies sont de petits fichiers
textes, stockés par le serveur sur l'ordinateur du client.
Un cookie peut contenir jusqu'à 4 Ko d'informations, et un
serveur ne peut normalement envoyer que 20 cookies par client. Par
ailleurs, un ordinateur n'est pas sensé accepter plus de
300 cookies. Sa durée de vie peut varier de la durée
de la session client (jusqu'à la fermeture du navigateur)
à plusieurs années...
4 Ko permet de stocker un bon nombre d'informations, mais il peut
toujours arriver une commande dépassant cette taille. Pire
: les clients peuvent parfaitement choisir de ne pas accepter certains
cookies...
Les sessions sont probablement le meilleur
choix. Lorsqu'un site utilise des sessions, chaque visiteur reçoit
un identifiant unique, qui correspond au nom du fichier, stocké
sur le serveur, contenant les informations enregistrées par
celui-ci. La taille du fichier est (en théorie) illimitée,
il le suit durant la totalité de la session, et même
après : la durée de vie d'une session est généralement
de 24 minutes, donc si l'utilisateur ferme le navigateur par inadvertance,
il pourra retrouver sa session en se reconnectant...
Utilisation
des sessions
Les informations relatives aux articles sélectionnés
sont donc stockées dans une session serveur, ou plus précisément
dans des variables de session.
Utiliser une session n'est pas très
compliqué : il suffit d'ajouter au début de chaque
page les utilisant (donc, le catalogue) le code suivant :
<?php session_start();
?>
Cela initialise la session (ou retrouve
une session sur le serveur). Pour comprendre les sessions, reportez-vous
à notre article "La
gestion des sessions en PHP4".
Notre session, tout du long du cheminement
du (futur) client, contiendra une variable dédiée
uniquement à la commande en train de se construire : un tableau
associatif, $achats[x][y]. Le tableau
"x" ne contiendra qu'une valeur, le numéro du produit
dans la commande, tandis que le tableau "y" contiendra
l'id du produit, et la quantité voulue. Par exemple, écrit
directement en PHP, nous aurions pour un seul produit :
<?php
$achats = array (
"1" => array("id =>
135423, "qte" => 2)
);
?>
En travaillant avec les sessions, cela
prendrait la forme suivante :
session_start();
$_SESSION['achats'] = array ("id" => 135423, "qte"
=> 2);
L'utilisation de ces variables de session
se fait ensuite via la variable $_SESSION:
$id = $_SESSION['achats']['id'];
$qte = $_SESSION['achats']['qte'];
Page 1 | 2
|