Cuore Batti Cuore - Loris Reinhard - Radio Genius - Alex Damiani e-Thomas.net Network:
 
Il tuo IP: 38.103.63.60
 

Altro
Scarica

 

Sei in: Per i Webmaster - Corso di ASP - I Cookies

Prima di parlare di cookies facciamo una piccola premessa riguardo alla interazione che esiste fra client e server. Quando un client fa una richiesta ad un server per una pagina web, il server risponde con l'informazione corretta. Cosa succede a questo punto? Il server si "sgancia" dal client in attesa di altre richieste, la connessione quindi non rimane attiva, il server si dimentica subito di chi lo ha visitato. Uno dei più grossi problemi della rete è appunto il suo essere stateless cioè senza stato. In altre comuni applicazioni tipo Word questo problema non si pone, in quanto ogni modifica, correzione o aggiunta ad un file non necessita di informazioni ulteriori, il programma sa sempre su che file stiamo lavorando fino a quando non lo chiudiamo. Internet è un po' come spedire una lettera, se ci dimentichiamo di scrivere qualcosa, dobbiamo scriverne un'altra e rispedirla. Una prima soluzione a questo problema sono appunto i cookies, anche se vedremo che ASP mette a disposizione altri strumenti per tenere traccia dei client.

Creare i Cookies con l'Oggetto Response
Scrivere un cookie sul PC di un client è molto semplice. La sintassi è la seguente:

<% Response.Cookies("cookie") = value %>

Se value è una stringa allora va messa fra virgolette. La scrittura precedente aggiunge la seguente intestazione HTTP:

Set-Cookies:YOURCOOKIENAME=somevalue

Utilizzo delle chiavi
Se aggiungiamo un valore chiave, allora possiamo accedere ai cookie come collection. Questo significa che un cookie può avere lo stesso nome ma più chiavi per diversi valori memorizzati. La sintassi è la seguente:

<% Response.Cookies("cookie")("key") = value %>

quindi si procede solitamente a specificare i diversi valori:

<%
Response.Cookies("sameCookieName")("key1") = value1
Response.Cookies("sameCookieName")("key2") = value2
%>

La proprietà HasKeys
ASP utilizza la proprietà HasKeys per determinare se un cookie ha o no valori multipli. Per sapere se un cookie ha valori multipli interroghiamo la proprietà HasKeys:

<%
For Each Cookie In Request.Cookies
    If Request.Cookies(Cookie).HasKeys Then
        For Each CookieKey In Request.Cookies(Cookie)
            Response.Write(Cookie) & "." & (CookieKey) & " = "
            Response.Write(Request.Cookies(Cookie)(CookieKey)) & "<br>"
        Next
    Else
        Response.Write(Cookie) & " = " & (Request.Cookies(Cookie)) & "<br>"
    End If
Next
%>

Mantenere il Cookie in vita
Se non si specifica una data di scadenza, un cookie persiste fino a quando il client non chiude il proprio browser o la sessione utente non è scaduta. Per far sì che il cookie rimanga in memoria nell'hard disk del client, dobbiamo specificare una data di scadenza, in questo modo:

<% Response.Cookies("cookie").Expires = "May 31, 2002"

Un modo migliore per fare in modo che non vi siano problemi con le date e i loro diversi formati, si preferisce utilizzare la sintassi seguente:

<% Response.Cookies("cookie").Expires = Date + nrOfDays %>

dove nrOfDays è un numero che indica i giorni di vita del cookie a partire dalla data attuale.

Cancellare un Cookie
Per fare in modo che un cookie sia cancellato, si utilizza lo stesso codice precedente con l'unica differenza che alla data attuale si tolgono dei giorni; per essere sicuri che non vi siano problemi con le date se ne tolgono molti:

<% Response.Cookies("cookie").Expires = Date - 1000 %>

Chi può leggere i nostri Cookies?
Fino a prova contraria l'unico modo per leggere un cookie via web è che una pagina che risiede nello stesso dominio ne faccia richiesta. Si può tuttavia forzare il Cookie ad avere ben specificato il nome del dominio dal quale viene scritto e anche da quale percorso:

<% Response.Cookies("cookie").Domain = "www.joanna.it" %>
<% Response.Cookies("cookie").Path = "/pages/samples/" %>

Se si specifica un dominio diverso da quello in cui si trova la pagina richiesta, il cookie non viene scritto, per ovvi motivi di sicurezza.

Contattaci. Stampa questa pagina. Contattaci via SMS. e-Thomas.net © 2009 Tutti i diritti riservati
 

F.A.Q. - Chi Siamo - Sitemap - Aspetti legali - Privacy - Le nostre fonti - RSS

Utenti connessi: 4 - Visite: 436.707 dal 10/02/2004 - Visite medie giornaliere: 244