Les cookies sont des fichiers textuels transmis par une application Web dans le but de stocher des informations sur l'ordinateur de l'utilisateur.
Visite Identite=MILLON%2DMARC%5CAdministrateur&Hote=127%2 E0%2E0%2E1&Choix=Veuf%28ve%29&Date=23%2F10%2F2 001+16%3A00%3A13&Navigateur=Mozilla%2F4%2E0+%28co mpatible%3B+MSIE+6%2E0%3B+Windows+NT+5%2E0%3B+ %2ENET+CLR+1%2E0%2E2914%29&Adresse=%2FLAltruiste %2Fcoursasp%2Fexemple%2Fcreation%5Fcookie%2Easp localhost/ 1024 257617920 29449230 154276752 29449163 *
Ces informations permettent de conserver des données relatives à l'identité du client et ses actions sur un site.
Bien que les cookies aient une mauvaise réputation auprès de certains internautes, les informations recélées par eux, ne concernent la plupart du temps que des activités préférentielles afin d'adapter le fonctionnement du site au client sans que ce-dernier n'ait à recommencer sempiternellement les mêmes processus pour parvenir à son but.
La création ou la mise à jour d'un cookie s'opère par l'intermédiaire de l'objet ASP Response associé à sa méthode Cookies().
Response.Cookies("nom_cookie")[("clé") | .Attribut] = Valeur
L'argument nom_cookie correspond à une chaîne de caractères qui représente le nom de l'élément et partant permet de lui affecter la ou les valeurs associées.
L'argument clé optionnel représente le nom d'une nouvelle entrée dans le cookie.
Les attributs de la collection cookies permettent d'accomplir certaines actions (voir ci-dessous).
La valeur peut être de n'importe quel type à condition qu'elle soit traduisible textuellement.
La lecture des informations contenues dans un cookie, s'effectue par l'intermédiaire de l'objet Request associé à sa méthode cookies().
Request.Cookies("nom_cookie")[("clé") | .Attribut]
Les différents éléments fonctionnent de la même façon que ci-dessous, hormis que dans ce cas, ils sont utilisés pour retrouver les valeurs associées aux cookies ou à leurs clés.
D'autre part, il existe un seul attribut valable dans ce contexte. En effet, l'unique attribut Haskeys vérifie si le cookie contient une ou plusieurs clés (voir ci-dessous).
<table>
<%
For Each nom_cookie In Request.Cookies
If Request.Cookies(nom_cookie).HasKeys Then
For Each cle_cookie in Request.Cookies(nom_cookie)
Response.Write "<tr><td>" & nom_cookie _
& "(" & cle_cookie & ") = " _
& Request.Cookies(nom_cookie)(cle_cookie) _
& "</td></tr>"
Next
Else
Response.Write "<tr><td>" & nom_cookie & " = " _
& Request.Cookies(nom_cookie) _
& "</td></tr>"
End If
Next
%>
</table>
Dans l'exemple ci-dessous, l'instruction conditionnelle If...Then détermine si la collection de cookies contient des clés en utilisant l'attribut HasKeys.
En outre, les boucles For Each permettent de parcourir les éléments et sous-éléments de la collection cookies().
Par ailleurs, la propriété Count permet de comptabiliser le nombre d'éléments de la collection Cookies.
Response.Cookies.Count
Elle permet également de dénombrer le nombre de clés présentes dans un cookie particulier.
Response.Cookies("nom").Count
La suppression de toutes les clés d'un cookie s'effectue par l'intermédiaire d'une affectation d'une chaîne de caractère vide.
Response.Cookies("nom") = ""
Suite à cette action, la propriété count appliquée au cookie retourne une valeur nulle et l'attribut HasKeys retourne False.
Lorsqu'un cookie arrive à expiration, en principe, le cookie est supprimé de la machine cliente.
Les atributs| Attribut |
|---|
| Description |
| Domain = "URL_Domaine" |
| Si spécifié, le cookie est valable uniquement à partir du domaine spécifié (ex: www.laltruiste.com). |
| Expires = Date |
| indique la date d'expiration du cookie. Par défaut le cookie expire à la fin d'une session. |
| HasKeys = True | False |
| indique si le cookie contient une clé. |
| Path = "Chemin_Virtuel" |
| Si spécifié, le cookie est valable uniquement à partir du chemin d'accès fourni (ex: /coursasp). Pour une validité du cookie dans tout un site, il faut lui donner la valeur "/". |
| Secure = True | False |
| indique si le cookie doit être sécurisé. |
Les cookies sont transmis dans un fichier unique placé dans le répertoire temporaire (temporary internet files) et dans un autre répertoire dénommé Cookies. S'il existe plusieurs cookies, les informations sont séparés par un astérisque (*).
<%
Response.Cookies("Visite") = Date & " " & Time
Response.Cookies("Visite")("Choix") = Request.Form("situation")
Response.Cookies("Visite").Expires = DateAdd("d", 1, Date)
Response.Cookies("Visite").path = "/"
Response.Cookies("Adresse").Expires = DateAdd("d", 1, Date)
Response.Cookies("Adresse").path = "/"
Response.Cookies("Adresse") = Request.ServerVariables("PATH_INFO")
%>
Contenu du fichier cookie:mon_compte@hote
Visite
08%2F11%2F2002+13%3A44%3A32%5C&Choix=Veuf%28ve%29
localhost/
1024
2424444928
29525882
2518072384
29525796
*
Adresse
%2Fcoursasp%2F%2Fcookie%2Ftraitement%5Fcookie%2Easp
localhost/
1024
2424444928
29525882
2518472384
29525796
* |
<!-- Formulaire -->
<html>
<head>
<%
Response.Cookies("Visite") = ""
%>
</head>
<body>
<h2>Faites un choix pour créer un cookie</h2>
<form action="creation_cookie.asp" method="post">
<input type="radio" name="situation" value="Célibataire">
Célibataire<br>
<input type="radio" name="situation" value="Marié(e)">
Marié(e)<br>
<input type="radio" name="situation" value="Concubinage">
Concubinage<br>
<input type="radio" name="situation" value="Pacs">
Pacs<br>
<input type="radio" name="situation" value="Veuf(ve)">
Veuf(ve)<br>
<input type="radio" name="situation" value="Divorcé(e)">
Divorcé(e)<br>
<br>
<input type="submit" name="soumission" value="Soumettre">
<table border="1" cellpadding="1" cellspacing="2">
<tr>
<td>Nombre de Cookies</td>
<td><% Response.Write Request.Cookies.Count %></td>
</tr>
<tr>
<td>Présence de clés dans Visite</td>
<td><% Response.Write Request.Cookies("Visite").HasKeys %></td>
</tr>
<tr>
<td>Nombre de Clés dans Visite</td>
<td><% Response.Write Request.Cookies("Visite").Count %></td>
</tr>
</table>
</body>
</html>
<!-- Fichier de traitement traitement.asp -->
<html>
<head>
<%
Response.Cookies("Visite")("Date") = Date & " " & Time
Response.Cookies("Visite").Expires = DateAdd("d", 1, Date)
Response.Cookies("Visite").Domain = "www.laltruiste.com"
Response.Cookies("Visite").path = "/"
Response.Cookies("Visite")("Choix") = _
Request.Form("situation")
Response.Cookies("Visite")("Adresse") = _
Request.ServerVariables("PATH_INFO")
Response.Cookies("Visite")("Hote") = _
Request.ServerVariables("REMOTE_HOST")
Response.Cookies("Visite")("Navigateur") = _
Request.ServerVariables("HTTP_USER_AGENT")
Response.Cookies("Identite") = _
Request.ServerVariables("REMOTE_USER")
%>
</head>
<body>
<h2>Le cookie a été correctement créé.</h2>
<table border="1" cellpadding="1" cellspacing="2">
<tr>
<td>Nombre de Cookies</td>
<td><% Response.Write Request.Cookies.Count %></td>
</tr>
<tr>
<td>Présence de Clés dans le cookie <i>Visite</i></td>
<td><% Response.Write Request.Cookies("Visite").HasKeys %></td>
</tr>
<tr>
<td>Nombre de Clés dans le cookie <i>Visite</i></td>
<td><% Response.Write Request.Cookies("Visite").Count %></td>
</tr>
<tr>
<td>Contenu du Cookie</td>
<td><% Response.Write Request.Cookies("Visite") %></td>
</tr>
<tr>
<td>Date Visite</td>
<td><% Response.Write Request.Cookies("Visite")("Date") %></td>
</tr>
<tr>
<td>Situation familiale</td>
<td><% Response.Write Request.Cookies("Visite")("Choix") %></td>
</tr>
<tr>
<td>Adresse URL</td>
<td><% Response.Write Request.Cookies("Visite")("Adresse") %></td>
</tr>
<tr>
<td>Hôte distant</td>
<td><% Response.Write Request.Cookies("Visite")("Hote") %></td>
</tr>
<tr>
<td>Navigateur Client</td>
<td><% Response.Write Request.Cookies("Visite")("Navigateur") %></td>
</tr>
<tr>
<td>Identité Client</td>
<td><% Response.Write Request.Cookies("Identite") %></td>
</tr>
</table>
</body>
</html> |