A chacun son cookie (part ii) : interrogation !

Contenu du snippet

Tous les cookies enregistrés sont séprés par des ; dans document.cooie. Les attributs, par exemple expires, ne sont pas stockés à cet endroit.

Le script suivant montre d'abord les cookies actuels, puis enrgeistre deux nvx. Au premier appel, rien ne se passe encore (normal, il ne sont pas créer le cookies !!:). Mais si vous recharger la page ou que vous l'ouvrez une seconde fois, vous retrouverez les données enregstrées précédemment.

Source / Exemple :


<html>

<head>
  <title>Interrogation des cookies !!</title>
</head>

<body bgcolor=#eeeeee text=#555555 link=#0000ff vlink=#0000ff
 alink=#ff0000>

<p align=left>
<font size=2 face="arial,helvetica" color=#ff7700>
<b>Exemple de programme pour <u>l'interrogation des cookies</u></b><br>
</font>

<p align=left>
<font size=2 face="arial,helvetica">
Ce programme affiche au départ toutes
les données stockées dans le cookie.<br>
Au premier chargement, il n'a bien sûr pas de données.<br>
Puis quelques informations sont enregistrées,
qui seront affichées au prochain chargement !<br>
<br>
Si vous avez désactivé les cookies dans votre navigateur,
activez-les pour pouvoir profiter de cet exercice.

<hr size=1 width="100%" noshade>

<script language="JavaScript"><!--

// En HTML, chaque ligne est terminée par <br>.
// print(); se charge de ce travail
function print(msg)
{
  document.write(msg+'<br>');
  return true;
}

// Existe-t-il déjà un cookie ?
if(document.cookie != '')
{
  // Si un cookie existe, il est affiché
  print('<b>Cookie actuel :</b> [' + document.cookie + ']');

  // Le cookie est fractionné en composants individuels
  var cookies = document.cookie.split(/;/);

  print('<p><b>En voici les composants individuels :</b><br>');
  // Une boucle for exploite la table (Array) 
  for(var i = 0; i < cookies.length; i++)
  {
    // Affichage des composants du cookie
    print('<b>Cookie Nr. #' + i + ':</b> ' + cookies[i]);
    // Identificateurs et valeurs sont séparés
    cookies[i] = cookies[i].split(/=/);
    print('Identificateur : <u>' + cookies[i][0] + '</u>');
    print('Valeur : <u>' + cookies[i][1] + '</u>');
    print('');
  }

} else {

  print('Pour le moment le cookie ne contient pas de valeur.');
  print('');
  print('Les données du cookie sont enregistrées.');
  print('Rechargez la page, SVP !');

}

// Le cookie est fixé, il est valable jusqu'à 2010.
var expires = new Date(2010,12,24);
document.cookie = "Nom=Olli; expires=" + expires.toGMTString();
document.cookie = "Hobby=Dialogue en ligne; expires=" + expires.toGMTString();
document.cookie = "Programmeur=Oui; expires=" + expires.toGMTString();

//--></script>

</font>
</p>

</body>

</html>

Conclusion :


Vous avez certainement remarquez que toute les données de cookie sont stockés dans une même variable : document.write. Dans ce cas comment fractionner les données en composants individuels ??

Comme je l'ai dis tout à l'heure, dans le cookie, les données sont séparées les unes des autres par un point virgules. Vous devinez aiséments la suite ... :

var cookies = document.cookies.split(/;/);//split (de l'objet string) perment de fractionner ce cookie
//et d'enregistrer les données individuelles dans une table.
for(var i = 0; i < cookies.length; i++)
{
print('<b>Cookie Nr #' + i + ':</b> ' + cookies[i]);
}
//Il reste ensuite à séprer les indentificateurs des valeurs :
var cookies = document.cookies.split(/;/);
for(var i = 0; i < cookies.length; i++)
{
print('<b>Cookie Nr #' + i + ':</b> ' + cookies[i]);
cookies[i] = cookies[i].split(/=/);
print('Indentificateur : ' + cookies[i][0]);
print('Valeur : ' + cookies[i][1]);

pi0up51
www.infobox51.fr.st
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.