PHP.Sesje

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&#91;'count'&#93;)) { // jeśli zmienna nie jest zarejestrowana
  $_SESSION&#91;'count'&#93; = 0; // przypisz jej początkową wartość
} else { // jeśli jest zarejestrowana
      $_SESSION&#91;'count'&#93;++; // zwiększ jej wartość
}

echo 'Strona odczytana '.$_SESSION&#91;'count'&#93;.' razy w ciągu tej sesji';

?>

Skomentuj

Please log in using one of these methods to post your comment:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: