VII. Cookies▲
Le cookie est un petit fichier qui est stocké directement sur l'ordinateur de l'utilisateur, dans un répertoire précis et propre à chaque browser. Pour que vous puissiez l'utiliser, il faut impérativement que l'utilisateur ait permis la pose de cookies. Cette permission passe par le browser respectif. Chaque cookie doit avoir un nom (ici Acookie).
Un cookie est tout simplement un String qui commence par : « NomDuCookie= » puis les valeurs attribuées au cookie (p.ex. n° d'enregistrement, séparés par un caractère, date de la dernière commande, etc.).
Ces valeurs peuvent ensuite être manipulées à votre convenance.
VII-A. Lire un cookie▲
dans un String (S1)
S1:=request.CookieFields.Values['ACookie'
];
VII-B. Poster un cookie▲
var
slstCookie:TStringList;
begin
slstCookie := TStringList.Create;
try
slstCookie.Clear;
slstCookie.Append('CookieExample=ACookie'
);
slstCookie.Append('CookieField1=Value1'
);
slstCookie.Append('CookieField2=Value2'
);
Response.SetCookieField(slstCookie, ''
, '/scripts'
,-1
,False
);
Response.Content := 'Cookie has been set. Thank you!'
;
finally
slstCookie.Free;
end
;
end
;
Exemple d'une redirection avec cookies :
var
slstCookie:TStringList;
begin
slstCookie := TStringList.Create;
try
slstCookie.Clear;
slstCookie.Append('CookieExample=ACookie'
);
slstCookie.Append('CookieField1=Value1'
);
slstCookie.Append('CookieField2=Value2'
);
Response.SetCookieField(slstCookie, ''
, '/scripts'
,-1
,False
);
//Sendredirect ne marche par avec les cookies
Response.Content := '<meta http-equiv="refresh" content="0;'
+
'URL=http://localhost/scripts/myisapi.dll/getimage?nom=ornella.jpg'
);
finally
slstCookie.Free;
end
;
end
;
Paramètres du cookie
procedure
SetCookieField(Values: TStrings; const
ADomain, APath: string
;
AExpires: TDateTime; ASecure: Boolean
);
Values sont les valeurs que l'on attribue au cookie.
ADomain et APath sont le nom d'URL vers lequel les cookies sont à envoyer.
Un cookie peut être gardé plus ou moins longtemps. AExpires détermine ce délai. P. ex., ici, c'est -1 = jamais ou ça peut être Now pour immédiatement ou Now+1 pour expiration dans un jour ou Date… ou 0 pour effacer le cookie à chaque fermeture du browser.
Ce délai est utilisé pour...
VII-C. Effacer un cookie▲
Response.SetCookieField(S,''
,''
,Now(),false
);