Obiekt Session i Cookies
Obiekt Session i Cookies.
4.1 Obiekt Session
Każde odwiedzenie strony przez użytkownika (klienta) jest reprezentowane przez obiekt
Session, który jest stworzony w momencie wejścia osoby na stronę. Obiekt Session
jest osobistym schowkiem każdego użytkownika. W nim można zachować informacje, które
następnie można odczytać oraz modyfikować. W momencie, gdy użytkownik (przeglądarka)
po raz pierwszy zażąda pliku ASP znajdującego się w aplikacji Webowej, ASP
wygeneruje unikalny numer przechowywany w SessionID. Na początku nowej
sesji, serwer przechowuje SessionID w przeglądarce użytkownika jako "cookie"
sesji, które pozostają w pamięci przeglądarki do momentu upływu czasu sesji lub
zamknięcia przeglądarki.
Uwaga! Można przechowywać wartości w obiekcie Session wtedy,
gdy przeglądarka użytkownika akceptuje "cookies" i użytkownik nie wyłączył
opcji pozwalającej przeglądarce na przechowywanie plików "cookies". Poniższy
przykład demonstruje jak można przechować łańcuch i liczbę w obiekcie Session:
<%
Session("Imie") = "Jan"
Session("Wiek") = 28
%>
Obiekt Session posiada cztery właściwości i jedną metodę:
Właściwości
SessionID
-
zwraca wartość identyfikatora sesji, który jest unikalny do momentu
restartu serwera WWW; należy pamiętać o tym, aby nie używać tej właściwości do
stworzenia unikalnego klucza w bazie danych
TimeOut
-
określa maksymalny czas nieaktywności użytkownika po jakim sesja
zostaje przerwana; wartość jest określana w minutach
LCID
-
identyfikator lokalny, który może być czytany i ustawiany podczas
sesji; więcej informacji znajdziesz tutaj
CodePage
-
numer strony kodowej; serwer tworzy dokument w celu wysłania go do
klienta (przeglądarki), z drugiej strony przeglądarka konwertuje bajty z otrzymanego
dokumentu i wyświetla je na ekranie; poniżej zostaną przedstawione niektóre strony
kodowe dla wybranych języków:
strona kodowa
kodowanie znaków
nazwa
1252
iso-8859-1
Western
28592
iso-8859-2
Central European (ISO)
1250
Windows-1250
Central European (Windows)
28597
iso-8859-7
Greek (ISO)
1253
Windows-1253
Greek (Windows)
1256
Windows-1256
Arabic (Windows)
936
gb2312
Simplified Chinese (GB2312)
Metoda
Abandon
-
wywołanie tej metody spowoduje usunięcie wszystkich zasobów obiektu Session
Wyłączanie wysyłania "cookies" sesji od strony serwera WWW można zrealizować za pomocą komendy:
<% @ ENABLESESSIONSTATE=FALSE %>
lub
<% @ ENABLESESSIONSTATE=FALSE LANGUAGE=VBScript %>
W przypadku dużego obciążenia serwera jest wskazane, aby w plikach, które nie
używają obiektu Session znalazła się jedna z dwóch powyższych linii.
Plik global.asa
W pliku global.asa można ustawić wartości początkowe niektórych
zmiennych, np. obiektu Session. Struktura pliku jest następująca:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' instrukcje wykonywane w momencie otwarcia sesji
End Sub
Sub Session_OnEnd
' instrukcje wykonywane w momencie zakończenia (zamknięcia) sesji
End Sub
Sub Application_OnStart
' instrukcje wykonywane w momencie otwarcia aplikacji (strony WWW)
End Sub
Sub Application_OnEnd
' instrukcje wykonywane w momencie zakończenia (zamknięcia) aplikacji
(strony WWW)
End Sub
</SCRIPT>
4.2 Obiekt Cookies
"Cookie" są częścią informacji która jest wymieniana między klientem i
serwerem. Występują dwa rodzaje "cookie":
- "cookie" sesji;
- stałe "cookie".
Pierwsze z nich działają tylko w czasie, gdy okno przeglądarki jest otwarte i
przechowywane są w obiekcie Session. Drugie zaś są przechowywane na dysku
twardym klienta (użytkownika) i są aktywne do czasu upływu ich daty ważności. Wiele
osób ma pewne obawy co do używania stałych "cookie", ponieważ są one
przechowywane na twardym dysku w postaci niezaszyfrowanej. Pliki "cookie" są
umieszczane w przypadku przeglądarki Internet Explorer w katalogu <Katalog
Windows>\Profiles\<Nazwa użytkownika>\Cookies. "Cookie" są
pojedynczymi plikami z rozszerzeniem .txt. W swojej nazwie zawierają nazwę
identyfikującą użytkownika oraz nazwę identyfikującą stronę WWW. "Cookie"
są tworzone na serwerze i wysyłane do klienta (przeglądarki) razem z żądaną stroną
WWW. Dlatego, jak można się domyśleć, "cookie" należą do obiektu Response.
Poniżej znajduje się przykład umieszczenia w "cookie" o nazwie Imie
wartość "Mariusz":
Response.Cookies("Imie") = "Mariusz"
Cookies jest grupą obiektu Response. Używając powyższej składni
można stworzyć wiele "cookie", których wartości można dowolnie zmieniać.
Dane przechowywane w stałych "cookie" nie wygasają po zamknięciu
przeglądarki. Posiadają one jednak datę upływu ważności. Przykład, który pokaże
sposób określenia daty upływu ważności "cookie" po upływie 1 miesiąca:
<%
Response.Cookies("Produkt") = "Telewizor"
Response.Cookies("Produkt").Expires = DateAdd("m", 1, Now())
%>
Można przechowywać więcej niż jedną wartość w "cookie". Zrobić to
można w następujący sposób:
1:
2:
2:
4:
5:
6:
7:
<%
Response.Cookies("Produkt")("Nazwa") = "Telewizor"
Response.Cookies("Produkt")("DataZamowienia") = CStr(Now())
Response.Cookies("Produkt").Domain = "sklep.com"
Response.Cookies("Produkt").Path = "/rtv/"
Response.Cookies("Produkt").Secure = "False"
%>
Linia 2 i 3 przypisują wartości do "cookie" o nazwie Produkt.
Zostają zachowane dwie wartości, pierwsza to nazwa produktu, a druga to data dokonania
wyboru (zamówienia). Linia 4 określa nazwę domeny dla której "cookie"
będzie aktywny. Wartość domyślna Domain jest domena serwera WWW. Innym
także ważnym ograniczeniem "cookie" jest jego ścieżka (path),
linia 6. Ścieżka służy podobnie jak Domain do ograniczenia aktywności
"cookie" do konkretnej ścieżki (katalogu i podkatalogów) na serwerze WWW.
Wielkość liter w nazwie ścieżki odgrywa ważną rolę, gdyż ścieżka
"/Katalog/" nie jest interpretowana tak samo jak "/katalog/", tzn. że
wielkie i małe litery są rozróżniane. Ostatnia linia dotyczy szyfrowania
"cookie". Domyślnie "cookie" nie są bezpieczne, więc należy
pamiętać, aby nie wysyłać ani nie przechowywać "wrażliwych" informacji na
temat klienta (użytkownika).
Odczytanie wartości "cookie" (np. z powyższego przykładu) realizuje się w
następujący sposób:
<% = Request.Cookies("Produkt")("Nazwa") %>
Komenda odczytuje wartość i wysyła ją do klienta (przeglądarki). W powyższym
przykładzie została wyświetlona tylko jedna wartość. Jak można wyświetlić
pozostałe? Otóż rozwiązaniem jest właściwość HasKeys grupy Cookies.
Poniżej został przedstawiony bardziej rozbudowany przykład wykorzystujący tą
właśnie właściwość:
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
<HTML>
<BODY>
<%
Dim cookie, klucz
For Each cookie In Request.Cookies
If Not Request.Cookies(cookies).HasKeys Then
Response.Write cookie & " = " &
Request.Cookies(cookie) & "<BR>"
Else
For Each klucz In Request.Cookies(cookie)
Response.Write cookie
Response.Write "(" & klucz & ")"
Response.Write " = "
Response.Write Request.Cookies(cookie)(klucz)
Response.Write "<BR>" & VbCrLf
Next
End If
Next
%>
</BODY>
</HTML>
Wynikiem wykonania powyższego skryptu będzie pojawienie się tekstu na stronie:
Produkt(NAZWA) = Telewizor
Produkt(DATAZAMOWIENA) = 1/6/00 10:43:12 PM
Jedynym nowym elementem w powyższym przykładzie jest linia:
If Not Request.Cookies(cookies).HasKeys Then
Sprawdza ona czy "cookie" o nazwie cookies posiada większą
ilość wartości niż 1. Operator Not w instrukcji If powoduje
zapytanie o wartość FALSE wyrażenia Request.Cookies(cookies).HasKeys.
Autor: Krzysztof Stelmach
Strona pochodzi z http://www.asp.z.pl/
Plik został ściągnięty ze strony www.programisty.prv.pl
Wyszukiwarka
Podobne podstrony:
kurs4Asembler w TSR KURS4KURS4więcej podobnych podstron