Finaliser la mise en place d'un accès sécurisé à DUTAF
Elements de correction sur la partie Panier
Ajout du lien "ajouter au panier"
Dans le catalogue (et/ou dans le résultat de la recherche), il faut ajouter un bouton permettant d'ajouter un article dans le panier. On peut s'inspirer du code ci-dessous
<a href="add_cart.php?numart='.$ligne['article_id'].'">Ajouter au panier</a>
Ce lien va transmettre l'id de l'article que l'on souhaite ajouter à la page de traitement add_cart.php
Traitement de l'ajout au panier
Le traitement pourrait ressembler à l'exemple ci-dessous. Attention des lignes sont volontairement manquantes
<?php$numart =...; //récupération de l'ID passé par le catalogue$dblink =... ; //connexion à la BDD $requete ='SELECT*FROM articles WHERE article_id = '. $numart; $exearticle = $dblink->query($requete);$article = $exearticle->fetch(); //récupération du premier (et normalement unique) article retourné par la requête//On construit un tableau contenant les informations de l'article, qui seront sauvegardées dans le panier $tableau =array('nom'=> $article['article_nom'],'code'=> $article['article_code'],'prix'=> $article['article_prix'],'quantite'=>1 );//si le panier existe on ajoute le produitif (isset($_SESSION['panier'])) { $_SESSION['panier'][$article['article_id']] = $tableau; } else {//sinon, on initialise le panier et on ajoute le produit. $_SESSION['panier'] =array(); $_SESSION['panier'][$article['article_id']] = $tableau; }}?><h2>Le produit <?php echo $article['article_nom']; ?> a été ajouté au panier.</h2>
Dans l'exemple ci-dessous, on sauvegarde le panier sous la forme d'un tableau associatif, qui est lui même sauvegardé dans un tableau dont l'index est l'id du produit. Cette solution permet de faciliter la manipulation des articles, et donc éventuellement de contrôler rapidement (en recherchant l'existence de l'Id d'un produit dans le panier) la présence d'un produit. Cette solution simplifie le fait de pouvoir augmenter la quantité d'un produit. Exemple de modification permettant de gérer les quantités.
<?php//.. récupération de l'article//on regarde si le produit est déjà existant. On pourrait utiliser des fonctions pour manipiler des tableaux en PHP égalementif (isset($_SESSION['panier'][$article['article_id']])){//mise à jour, puisque le produit est déjà présent $_SESSION['panier'][$article['article_id']]['quantite']++;} else{//création// .. comme fait précédemment.}?><h2>Le produit <?php echo $article['article_nom']; ?> a été ajouté au panier.</h2>
Affichage du panier
La session est un simple tableau. On a pris soin de sauvegarder toutes les informations d'un article dans la session (ce que l'on ne ferait pas forcément en réalité). On doit donc manipuler la session (qui est une variable comme les autres) pour afficher le panier. On pourrait obtenir le code suivant :