PHP - sesje
wstęp

Zmiennych sesji będziemy używali do przekazywania danych logowania między stronami:

  • logowania do księgi gości.
  • zapamiętania nazwy użytkownika i hasła w czasie dodawania/czytania wpisów.
  • wylogowania użytkownika.

Mechanizm sesji umożliwia przekazywanie parametrów między stronami.
Zmienne są przechowywane po stronie serwera a u klienta trzymane jest tylko ID sesji.
Przykładowy plik sesji może mieć nazwę sess_0024f949a698f9827e760d63f58acb48

Mechanizm sesji uruchamiamy poleceniem session_start() - powoduje to wygenerowanie identyfikatora sesji ID.
Wywołanie funkcji MUSI być umieszczone na początku skryptu!

Zmienne sesji umieszczane są w superglobalnej tablicy $_SESSION.
Kod $_SESSION['login']= "OK" powoduje rejestrację zmiennej sesji login z wartością OK.

Watrość takiej zmiennej można przekazywać między różnymi stronami

WNIOSEK:
Tablica ta ma pewną różnicę w stosunku do innych tablic superglobalnych.
Mianowicie można jej użyć do rejestrowania zmiennych sesyjnych.
Wystarczy przypisać wartość odpowiedniemu kluczowi tej tablicy aby zmienna została zarejestrowana.

Przykład: Zliczanie ile dana osoba odczytała daną stronę z czasie jednej sesji.

<?php		
	session_start(); 				// koniecznie na początku skryptu
	
	if (!isset($_SESSION['count'])) { 		// jeśli zmienna nie jest zarejestrowana
		$_SESSION['count'] = 0;     		// przypisz jej wartość początkową 0
	} else {                         		// jeśli jest zarejestrowana
		$_SESSION['count']++;       		// zwiększ jej wartość
	}
	
	echo 'Strona odczytana '.$_SESSION['count'].' razy w ciągu tej sesji';
	
?>

Skrypt z tego przykładu będzie pamiętał ilość odwiedzin przez cały czas działania przeglądarki, jeśli w przeglądarce włączony jest mechanizm cookies, lub dopóki strona odświeżana jest z takim samym numerem sesji przekazanym przez URL.

Użycie sesji rodzi pewne wątpliwości: co jeśli ktoś 'ukradnie’ numer sesji?
W ten sposób uzyska dostęp do danych zapisanych w tej sesji.
Mimo że istnieje taka teoretyczna możliwość, to ilość dostępnych identyfikatorów sesji jest tak duża, że taka 'kradzież’ byłaby całkiem przypadkowa.

Projekt i wykonanie: Ryszard Rogacz© 1999−2024