Sauvegarde d'un panier pendant plusieurs jours
Firefly90
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir.
Je voudrais sauvegarder un panier pendant une semaine.
Peux on sauvegarder la session pendant une semaine ou dois-je utiliser un cookie?
Je voudrais sauvegarder un panier pendant une semaine.
Peux on sauvegarder la session pendant une semaine ou dois-je utiliser un cookie?
A voir également:
- Sauvegarde d'un panier pendant plusieurs jours
- Logiciel de sauvegarde gratuit - Guide
- Compte facebook suspendu 180 jours - Guide
- Compte instagram suspendu 180 jours - Guide
- Sauvegarde facile - Télécharger - Sauvegarde
- Sauvegarde android - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
en principe, ni l'un ni l'autre, il faut mémoriser dans une base de données (ou dans un fichier).
en principe, ni l'un ni l'autre, il faut mémoriser dans une base de données (ou dans un fichier).
Bonsoir
Mais est ce que l'on peux modifié la durée d'une session car mon panier n'est pas enregistré dans une bdd pour le moment.
Il fais juste parti d'une session dans ma page.
j'ai suivi ce tuto sur le net par contre il n'y a aucun enregistrement et je voudrais que mes éléments reste dans mon panier.
voici mes deux codes
mon panier
et mon code fonctions panier
Mais est ce que l'on peux modifié la durée d'une session car mon panier n'est pas enregistré dans une bdd pour le moment.
Il fais juste parti d'une session dans ma page.
j'ai suivi ce tuto sur le net par contre il n'y a aucun enregistrement et je voudrais que mes éléments reste dans mon panier.
voici mes deux codes
mon panier
<?php require('inc_connect.php'); ?> <?php require('inc_user.php'); ?> <?php setcookie("panier", "Guru99", time() - 360,'/'); Print_r ('$panier');?> <?php session_start(); include_once("fonctions-panier.php"); $erreur = false; $action = (isset($_POST['action'])? $_POST['action']: (isset($_GET['action'])? $_GET['action']:null )) ; if($action !== null) { if(!in_array($action,array('ajout', 'suppression', 'refresh'))) $erreur=true; //récuperation des variables en POST ou GET $l = (isset($_POST['l'])? $_POST['l']: (isset($_GET['l'])? $_GET['l']:null )) ; $p = (isset($_POST['p'])? $_POST['p']: (isset($_GET['p'])? $_GET['p']:null )) ; $q = (isset($_POST['q'])? $_POST['q']: (isset($_GET['q'])? $_GET['q']:null )) ; //Suppression des espaces verticaux $l = preg_replace('#\v#', '',$l); //On verifie que $p soit un float $p = floatval($p); //On traite $q qui peut etre un entier simple ou un tableau d'entier if (is_array($q)){ $QteArticle = array(); $i=0; foreach ($q as $contenu){ $QteArticle[$i++] = intval($contenu); } } else $q = intval($q); } if (!$erreur){ switch($action){ Case "ajout": ajouterArticle($l,$q,$p); break; Case "suppression": supprimerArticle($l); break; Case "refresh" : for ($i = 0 ; $i < count($QteArticle) ; $i++) { modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i])); } break; Default: break; } } echo '<?xml version="1.0" encoding="utf-8"?>';?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>Votre panier</title> </head> <body> <form method="post" action="panier.php"> <table style="width: 400px"> <tr> <td colspan="4">Votre panier</td> </tr> <tr> <td>Libellé</td> <td>Quantité</td> <td>Prix Unitaire</td> <td>Action</td> </tr> <li><a href="liste.php">Mon panier</a></li><br> <?php if (creationPanier()) { $nbArticles=count($_SESSION['panier']['libelleProduit']); if ($nbArticles <= 0) echo "<tr><td>Votre panier est vide </ td></tr>"; else { for ($i=0 ;$i < $nbArticles ; $i++) { echo "<tr>"; echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>"; echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>"; echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i]) . " €</td>"; echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$i]))."\">XX</a></td>"; echo "</tr>"; } echo "<tr><td colspan=\"2\"> </td>"; echo "<td colspan=\"2\">"; echo "Total : ".MontantGlobal(); echo "€</td></tr>"; echo "<tr><td colspan=\"4\">"; echo "<input type=\"submit\" value=\"Rafraichir\"/>"; echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>"; echo "</td></tr>"; } } ?> </table> </form> </body> </html>
et mon code fonctions panier
<?php function creationPanier(){ if (!isset($_SESSION['panier'])){ $_SESSION['panier']=array(); $_SESSION['panier']['libelleProduit'] = array(); $_SESSION['panier']['qteProduit'] = array(); $_SESSION['panier']['prixProduit'] = array(); $_SESSION['panier']['verrou'] = false; } return true; } function ajouterArticle($libelleProduit,$qteProduit,$prixProduit){ if (creationPanier() && !isVerrouille()) { $positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']); if ($positionProduit !== false) { $_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ; } else { //Sinon on ajoute le produit array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit); array_push( $_SESSION['panier']['qteProduit'],$qteProduit); array_push( $_SESSION['panier']['prixProduit'],$prixProduit); } } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; } function modifierQTeArticle($libelleProduit,$qteProduit){ if (creationPanier() && !isVerrouille()) { if ($qteProduit > 0) { $positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']); if ($positionProduit !== false) { $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ; } } else supprimerArticle($libelleProduit); } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; } function supprimerArticle($libelleProduit){ if (creationPanier() && !isVerrouille()) { $tmp=array(); $tmp['libelleProduit'] = array(); $tmp['qteProduit'] = array(); $tmp['prixProduit'] = array(); $tmp['verrou'] = $_SESSION['panier']['verrou']; for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) { if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit) { array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]); array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]); array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]); } } $_SESSION['panier'] = $tmp; unset($tmp); } else echo "Un problème est survenu veuillez contacter l'administrateur du site."; } function MontantGlobal(){ $total=0; for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++) { $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i]; } return $total; } function supprimePanier(){ unset($_SESSION['panier']); } function isVerrouille(){ if (isset($_SESSION['panier']) && $_SESSION['panier']['verrou']) return true; else return false; } function compterArticles() { if (isset($_SESSION['panier'])) return count($_SESSION['panier']['libelleProduit']); else return 0; } ?>
Non, c'est juste que je ne vois pas trop comment faire pour mémoriser la date sans utiliser de cookies?
en fait, dans la demande qui a été faite.
je dois imperativement sauvegarder mon panier dans un cookie.
mais je suis un peu perdu car je ne sais pas si il faut que l'insère dans mon code du panier pour qu'il réapparaisse ou le mettre dans un fichier a part en include??
je dois imperativement sauvegarder mon panier dans un cookie.
mais je suis un peu perdu car je ne sais pas si il faut que l'insère dans mon code du panier pour qu'il réapparaisse ou le mettre dans un fichier a part en include??