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>")
%>