[PHP] Faire un tableau de cookies

Dédé86 Messages postés 690 Statut Membre -  
Dr.SoFtNaF Messages postés 21 Statut Membre -
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 ?
A voir également:

10 réponses

Dr.SoFtNaF Messages postés 21 Statut Membre 30
 
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 690 Statut Membre 208
 
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 1803 Statut Contributeur 181
 
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 1803 Statut Contributeur 181
 
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 Statut Membre 36
 
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 1803 Statut Contributeur 181
 
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 690 Statut Membre 208
 
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 1803 Statut Contributeur 181
 
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 690 Statut Membre 208
 
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 690 Statut Membre 208
 
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