Cookies ASP


Un cookie est souvent utilisé pour identifier un utilisateur.


Plus d'exemples


Comment créer un cookie de bienvenue.


Qu'est-ce qu'un cookie ?

Un cookie est souvent utilisé pour identifier un utilisateur. Un cookie est un petit fichier que le serveur intègre sur l'ordinateur de l'utilisateur. Chaque fois que le même ordinateur demande une page avec un navigateur, il enverra également le cookie. Avec ASP, vous pouvez à la fois créer et récupérer des valeurs de cookies.


Comment créer un cookie ?

La commande "Response.Cookies" permet de créer des cookies.

Remarque : La commande Response.Cookies doit apparaître AVANT la balise <html>.

Dans l'exemple ci-dessous, nous allons créer un cookie nommé "firstname" et lui attribuer la valeur "Alex" :

<%
Response.Cookies("firstname")="Alex"
%>

Il est également possible d'attribuer des propriétés à un cookie, comme définir une date d'expiration du cookie :

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=#May 10,2012#
%>

Comment récupérer une valeur de cookie ?

La commande "Request.Cookies" permet de récupérer une valeur de cookie.

Dans l'exemple ci-dessous, nous récupérons la valeur du cookie nommé "firstname" et l'affichons sur une page :

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

Sortie : Prénom=Alex



Un cookie avec des clés

Si un cookie contient une collection de plusieurs valeurs, nous disons que le cookie a des clés.

Dans l'exemple ci-dessous, nous allons créer une collection de cookies nommée "user". Le cookie "utilisateur" a des clés qui contiennent des informations sur un utilisateur :

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

Lire tous les cookies

Regardez le code suivant :

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

Supposons que votre serveur a envoyé tous les cookies ci-dessus à un utilisateur.

Maintenant, nous voulons lire tous les cookies envoyés à un utilisateur. L'exemple ci-dessous montre comment procéder (notez que le code ci-dessous vérifie si un cookie a des clés avec la propriété HasKeys) :

<!DOCTYPE html>
<html>
<body>

<%
dim x,y
for each x in Request.Cookies
  response.write("<p>")
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
      response.write("<br>")
    next
  else
    Response.Write(x & "=" & Request.Cookies(x) & "<br>")
  end if
  response.write "</p>"
next
%>

</body>
</html>

Sortir:

prénom=Alex

user:firstname=John
user:lastname=Smith
user:country=Norvège
user:age=25


Que faire si un navigateur ne prend PAS en charge les cookies ?

Si votre application traite des navigateurs qui ne supportent pas les cookies, vous devrez utiliser d'autres méthodes pour faire passer les informations d'une page à l'autre dans votre application. Il y a deux façons de le faire:

1. Ajouter des paramètres à une URL

Vous pouvez ajouter des paramètres à une URL :

<a href="welcome.asp?fname=John&lname=Smith">Go to Welcome Page</a>

Et récupérez les valeurs dans le fichier "welcome.asp" comme ceci :

<%
fname=Request.querystring("fname")
lname=Request.querystring("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>

2. Utilisez un formulaire

Vous pouvez utiliser un formulaire. Le formulaire transmet l'entrée utilisateur à "welcome.asp" lorsque l'utilisateur clique sur le bouton Soumettre :

<form method="post" action="welcome.asp">
First Name: <input type="text" name="fname" value="">
Last Name: <input type="text" name="lname" value="">
<input type="submit" value="Submit">
</form>

Récupérez les valeurs dans le fichier "welcome.asp" comme ceci :

<%
fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>