[PHP] Faire un tableau de cookies

Fermé
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 18 mai 2007 à 19:16
Dr.SoFtNaF Messages postés 21 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 octobre 2010 - 17 mars 2009 à 21:22
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 ?

10 réponses

Dr.SoFtNaF Messages postés 21 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 octobre 2010 30
17 mars 2009 à 21:22
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
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
18 mai 2007 à 20:27
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
19 mai 2007 à 12:01
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
20 mai 2007 à 19:29
alors? ca t as fait avancer le smilblick??
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fras34 Messages postés 92 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 27 mai 2007 36
21 mai 2007 à 16:05
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
18 mai 2007 à 21:04
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
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
18 mai 2007 à 21:30
Merci mais ton code ne fontionne pas apparement.

J'ai une erreur sur cette ligne :

txt[$cpt]=getcookie("compte".$cpt."");
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
18 mai 2007 à 21:38
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
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
18 mai 2007 à 21:44
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
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
18 mai 2007 à 22:32
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