[PHP] Faire un tableau de cookies

Bonjour,

Je récupère la valeur d'un champ de formulaire sur la page envoyée et je la met dans un tableau POST.

Je voudrais savoir comment faire pour créer un tableau de cookies et comment l'afficher ce tableau, parce que pour l'instant je peux seulement récupérer une valeur.

Voici mon code :
<?php
	$res=$_POST['tranvar'];
	setcookie("titre", "$res");
	echo "{$_COOKIE['titre']}";
?>

Vous pouvez m'aider svp ?
Configuration: Windows XP
Firefox 2.0.0.3

10 réponses

  1. Bonsoir,

    Il y a mieux que ça :

    La fonction serialize dans le setcookie("name",serialize($array), time()+60*60);
    la fonction prend tout le tableau, le rend sous format chaine de caractère, et stock le dans le cockie.

    Pour récuperer la varriable, on fait comme ça:

    $Array = unserialize($_COOKIE['name']);

    Si vous sentez que vous avez une très grande chaine de caractère vous n'avez qu'a la compresser, exemple

    $data[qwerty] = "blah";
    $data[1][a] = "1aa";
    $data[2][b] = "2bb";
    $data[3][c] = ";;;;;;";
    $data[name][first] = "Bob";
    $data[name][last] = "Jones";
    $data[val] = "c'est une très longue chaine de caractère, seulement pour savoir comment ça va être traiter.";
    //Pour la serialiser appelez :
    $string = gzcompress(serialize($data), 9);
    setcookie("my_var", $string, time()+60*60*24*60, '/');
    //print "String: $string\n<br>"; //uncomment to see serialized array

    //pour la deserialiser appelez :
    if (isset($_COOKIE[my_var])) {
    $array = unserialize(gzuncompress($_COOKIE[my_var]));

    echo "<pre>";
    print_r($array);
    echo "</pre>";
    }

    et voilà,

    Je sais que cette discussion a été inventé y a 2 ans, mais seulement en cas où les autres entrain de la chercher, peuvent avoir une réponse dans ce forum.

    Bonne journée

    Cordiallement

    Dr.SoFtNaF
    13
    1. J'ai pensé à ce code mais je ne sais pas comment lire le tableau :

      $res=$_POST['tranvar'];

      $compte++;
      setcookie("compte", "$compte" );
      setcookie("titre[$compte]", "$res" );

      Est-ce que c'est correct ? Quel est le code pour parcourir le tableau ?

      Merci d'avance.
      1
      1. Contributeur
        Méacoolpas... désolé... en faisant des ptites recherche, j'ai trouver ceci.. je pense que c'est ce que tu cherche ;)

        <?php
        setcookie("cookie[three]", "cookiethree" );
        setcookie("cookie[two]", "cookietwo" );
        setcookie("cookie[one]", "cookieone" );

        // Après avoir rechargé la page :
        if (isset($_COOKIE['cookie'])) {
        foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
        }
        }
        ?>

        Voici ma source.. un ptit fichier d'aide sur les fonctions php tres tres utile ;)

        https://www.php.net/distributions/manual/php_manual_fr.chm
        1
        1. Contributeur
          alors? ca t as fait avancer le smilblick??
          1
          1. Bonjour,

            foreach($_POST as $key =>$val)    setcookie('tableau['.$key.']', $val);
            
            header("Location:".$_SERVER['PHP_SELF']);
            
            foreach($_COOKIE['tableau'] as $key => $val)  echo "$key : $val<br />\n"; 
            1
            1. Contributeur
              Ah.. pas possible messieurs, mesdames...

              on peu pas faire un tableau de cookies, vu qu un cookie c'est un simple fichier texte..

              Mais on peut contourner le problème :

              pour l'écriture du coookie
              $compte=1;
              while ($res)
              {
              setcookie("compte".$compte."", "$compte" );// tu vide ton tableau
              $compte++;
              }

              Le cookie ressemblera a ca :
              compte1=1
              compte2=2
              compte3=3

              et pour la lecture :

              $cpt=1;
              txt[$cpt]=getcookie("compte".$cpt."");
              while (txt[$cpt]!= "")
              {
              $cpt++;
              txt[$cpt]=getcookie("compte".$cpt."");
              }

              et la ton tableau txt ressemblera a ca :

              $txt[1]=1
              $txt[2]=2
              $txt[3]=3

              Voili, j'espere que ca t'avance et surtout que ca résou ton soucis de tableau de cookie.

              Et bon ap ;) :p
              0
              1. Merci mais ton code ne fontionne pas apparement.

                J'ai une erreur sur cette ligne :

                txt[$cpt]=getcookie("compte".$cpt."");
                0
                1. Contributeur
                  A, t as fait un copier coller, bete et mechant.. et je te comprend, ca serait tellement simple ;)

                  $_COOKIE["compte".$cpt] martchera ptere mieux ;) désolé, j'ai pas tres approfondi le code, c'est plus pour te donner la logique a avoir ;)
                  0
                  1. Je suis désolé monsieur je ne comprend pas bien ton code. Excuse-moi mais est-ce que je peux te soumettre une idée ?

                    Est-ce qu'il est possible de mettre le contenu du cookie dans une variable de type tableau et après de lire ce tableau ?
                    0
                    1. Il y a un truc que je ne comprend pas : pour m'entraîner j'ai essayer de stocker 2 cookies dans un tableau et quand j'appuie sur F5 pour rafraîchir la page, j'ai le contenu du 2ème tableau dans les 2 indices :

                      setcookie("MonCook", "Salut" );
                      $mavariable[0]=$_COOKIE['MonCook'];
                      setcookie("MonCook", "Les copains");
                      $mavariable[1]=$_COOKIE['MonCook'];
                      echo"$mavariable[0]<br>";
                      echo"$mavariable[1]<br>";
                      0