Active Server Pages,ActiveServerPages+,ASP,ASP+,aspx,VBScript,IIS,internet,intranet,programming,programowanie,XML,Extensible Markup Language,kurs,opis,HTML,Hypertext Markup Language,JScript,JavaScript,wyszukiwarka,znajdz,instrukcja,Stelmik,Stelmi,free,darmo,zadarmo,free,serwer,server,www,konta,PHP,perl,klient,uslugi,asp,sklep internetowy,sklepy internetowe,e-sklep,esklep,tworzenie stron internetowych,strony internetowe,strony www,tworzenie stron www,strony internetowe,web page,webpage,creating,Krzysztof Stelmach,Krzysztof,Stelmach,www.stelmach.info,www.asp.z.pl
 
Ledger Nano X - The secure hardware wallet
IP: 3.147.47.177 
 
 ASP / OBIEKT SESSION I COOKIES
Szukaj:  
Sob, 23.11.2024r.
KURSY » języki - serwer » ASP » Obiekt Session i Cookies
 

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>

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.

 
do góry ^ 
Jesteś 4754635 odwiedzającym
 
 
Copyright © 2003-2024 Krzysztof Stelmach, Wszelkie prawa zastrzeżone.
 
System reklamy Test