Zmiennych sesji będziemy używali do przekazywania danych logowania między stronami:
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.