Sesje (ang. session) w PHP
Pewnie każdy wie czym są sesje, ale dla pewności pozwolę sobie zacytować wstęp z manuala na temat sesji:
Obsługa sesji w PHP ma na celu zapewnienie sposobu na zachowanie pewnych danych w trakcie następujących po sobie wywołań strony. Pozwala to na budowanie bardziej spersonalizowanych aplikacji i zwiększenie atrakcyjności twojej strony internetowej.
Mechanizm ten umożliwia on przekazywanie parametrów między stronami w łatwy sposób. Zmienne są przechowywane po stronie serwera a u klienta trzymane jest tylko ID sesji. Te ID jest zapisane w cookie lub przekazywane przez URL. PHP jest w stanie sam rozpoznać czy na komputerze klienta włączony jest mechanizm cookies i w razie potrzeby dodać identyfikator sesji do każdego URLu i formularza. Wymaga to jednak posiadania PHP skompilowanego z opcją –enable-trans-sid.
Po otrzymaniu żądania klienta PHP automatycznie (jeśli w konfiguracji PHP włączona została opcja auto_start) lub “ręcznie” przez programistę (za pomocą funkcji session_start()) sprawdza, czy przypisano już ID sesji. Jeśli tak, to PHP odczytuje zmienne zarejestrowane w tej sesji. Jeśli nie, generowany jest nowy, unikalny identyfikator sesji. Aby PHP zaczęło śledzić wartość zmiennej, najpierw trzeba ją zarejestrować za pomocą funkcji session_register(var).
Istnieje też odwrotna wersja tej funkcji – funkcja session_unregister(var) powoduje, że PHP “zapomni” o tej zmiennej.Jako przykład podamy ile osób odwiedziło daną stronę w czasie trwania jednej sesji.
<?php
session_start(); /* można pominąć jeśli jest się pewnym że włączona jest opcja auto_start */
if (!isset($_SESSION['count'])) { // jeśli zmienna nie jest zarejestrowana
$_SESSION['count'] = 0; // przypisz jej początkową wartość
} else { // jeśli jest zarejestrowana
$_SESSION['count']++; // zwiększ jej wartość
}
echo 'Strona odczytana '.$_SESSION['count'].' razy w ciągu tej sesji';
?>
Zamieszczony w: Jak w PHP zrobć...?