Sesje PHP

Zmienne sesji PHP są używane do przechowywania informacji o sesji użytkownika lub zmiany ustawień sesji. Informacje przechowywane przez zmienne sesji są związane z pojedynczym użytkownikiem i są dostępne na wszystkich stronach aplikacji.

Zmienne sesji PHP

Kiedy uruchamiasz aplikację, otwierasz ją, wprowadzasz zmiany i zamykasz. To jest podobne do jednej sesji. Komputer wie, kim jesteś. Wie, kiedy uruchomiłeś aplikację i kiedy ją zakończyłeś. Ale w Internecie istnieje problem: serwer nie wie, kim jesteś ani co robisz, ponieważ adres HTTP nie utrzymuje stanu.

Przechowywanie informacji użytkownika na serwerze, aby można było ich użyć w przyszłości, rozwiązuje problem, np. nazwy użytkownika, zakupionych produktów itp. Informacje sesyjne są tymczasowe i są usuwane po opuszczeniu strony. Jeśli potrzebujesz trwałego przechowywania danych, możesz je zapisać w bazie danych.

Mechanizm działania sesji polega na tworzeniu unikalnego identyfikatora (UID) dla każdego odwiedzającego i przechowywaniu zmiennych na podstawie tego UID. UID jest przechowywany w pliku cookie, a także może być przekazywany przez URL.

Rozpocznij sesję PHP

Przed zapisaniem informacji użytkownika do sesji PHP, musisz najpierw uruchomić sesję.

Komentarz:Funkcja session_start() musi znajdować się przed znacznikiem <html>:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

Powyższy kod rejestruje sesję użytkownika na serwerze, aby można było zacząć zapisywać informacje użytkownika, przydzielając jednocześnie UID sesji użytkownika.

Zapisz zmienną sesji

Poprawny sposób zapisu i odczytu zmiennych sesji to użycie zmiennej $_SESSION w PHP:

<?php
session_start();
//zapis danych sesji
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//pobieranie danych sesji
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

Wyjście:

Pageviews=1

W poniższym przykładzie tworzymy prosty licznik wizyt strony. Funkcja isset() sprawdza, czy zmienna "views" została ustawiona. Jeśli zmienna "views" została ustawiona, zwiększamy licznik. Jeśli "views" nie istnieje, tworzymy zmienną "views" i ustawiamy ją na 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Zakończ Sesję

Jeśli chcesz usunąć pewne dane sesji, możesz użyć funkcji unset() lub session_destroy().

Funkcja unset() służy do uwolnienia określonej zmiennej sesji:

<?php
unset($_SESSION['views']);
?>

Możesz również całkowicie zakończyć sesję za pomocą funkcji session_destroy():

<?php
session_destroy();
?>

Komentarz:session_destroy() zresetuje sesję, stracisz wszystkie przechowywane dane sesji.