IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

tableau multi-dimentionnel dans un cookie


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 97
    Par défaut tableau multi-dimentionnel dans un cookie
    Bonjour à tous,

    Jusqu'à présent un client de mon site ne pouvais ajouter des produits dans son panier qu'en s'identifiant.

    Je souhaite mettre en place un cookie pour que ce ne soit plus obligatoire de s'identifier.


    au dessus du doctype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $timestamp_expire = time() + 7*24*3600; //on fixe la date d'expiratin du cookie
     
    if(isset($_COOKIE['cookie_panier'])){  //si le cookie existe deja
    	$array_cookie = unserialize($_COOKIE['cookie_panier']); //on unserialize le cookie pour le retransformer en tableau                  
    	$count_array = count($array_cookie[1]);                    // on compte le nb de valeurs dans le champ 'produit'
    		$array_cookie[1][$count_array] = $_POST['produit'];    // on ajoute ds le chp prdt l'id du produit sur lequel on a cliqué
    		$array_cookie[2][$count_array] = $_POST['quantite'];
    		$array_cookie[3][$count_array] = $_POST['taille'];
    setcookie('cookie_panier', serialize($array_cookie), $timestamp_expire); // on écrase le cookie et on serialize le tableau
    }else{   										 // si le coookie n'existe pas encore
    $array_cookie = array(                          //on crée un tableau multidimensionnel
    					array($_POST['ip_client']), //1er champ = ip_client
    					array($_POST['produit']), 
    					array($_POST['quantite']), 					
    					array($_POST['taille']),					
    				);    															
    setcookie('cookie_panier', serialize($array_cookie), $timestamp_expire); // on crée un cookie et on serialize le tableau
    } 
    $array_cookie = unserialize($_COOKIE['cookie_panier']); //on unserialize le cookie pour le retransformer en tableau 
     
    ?>
    Dans le body
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php 
    	foreach($array_cookie[1] as $element1){
    		echo $element1 . '<br />';
    	} 
     
    	foreach($array_cookie[2] as $element2){
    		echo $element2 . '<br />';
    	} 
     
    	 foreach($array_cookie[3] as $element3){
    		echo $element3 . '<br />';
    	} 
     
    	foreach($array_cookie[0] as $element0){
    		echo $element0 . '<br />';
    	} ?>
    Warning: Invalid argument supplied for foreach() in ... on line 34
    Warning: Invalid argument supplied for foreach() in ... on line 38
    Warning: Invalid argument supplied for foreach() in ... on line 42
    Warning: Invalid argument supplied for foreach() in ... on line 46
    Est-ce que quelqu'un pourrait m'aider ?

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Sauf erreur de ma part, le cookie qu'on vient de créer n'est récupérable que lors de la prochaine requête, donc en gros au prochain chargement de la page....
    Si tu vires la ligne $array_cookie = unserialize($_COOKIE['cookie_panier']); //on unserialize le cookie pour le retransformer en tableau
    , qu'est-ce que ça donne ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [Tableaux] Tri de tableau multi-dimentionnel
    Par numerodix dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2009, 20h08
  2. Tableau multi-dimentionnel associatif
    Par bdaboah dans le forum ASP
    Réponses: 13
    Dernier message: 08/07/2008, 20h48
  3. [Tableaux] recherche dans un tableau multi dimension
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2007, 14h27
  4. Réponses: 3
    Dernier message: 06/10/2006, 15h46
  5. [Cookies] Stocker un tableau récursif dans un cookie
    Par Nizarazu dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2006, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo