Sesje PHP
Sesja to sposób przechowywania informacji (w zmiennych), które mają być używane na wielu stronach.
W przeciwieństwie do plików cookie informacje nie są przechowywane na komputerze użytkownika.
Co to jest sesja PHP?
Kiedy pracujesz z aplikacją, otwierasz ją, wprowadzasz zmiany, a następnie ją zamykasz. To jest jak sesja. Komputer wie, kim jesteś. Wie, kiedy uruchamiasz aplikację, a kiedy kończysz. Ale w Internecie jest jeden problem: serwer WWW nie wie, kim jesteś i co robisz, ponieważ adres HTTP nie utrzymuje stanu.
Zmienne sesji rozwiązują ten problem, przechowując informacje o użytkowniku, które mają być używane na wielu stronach (np. nazwa użytkownika, ulubiony kolor itp.). Domyślnie zmienne sesji trwają do momentu zamknięcia przeglądarki przez użytkownika.
Więc; Zmienne sesji przechowują informacje o jednym użytkowniku i są dostępne dla wszystkich stron w jednej aplikacji.
Wskazówka: jeśli potrzebujesz stałego miejsca do przechowywania, możesz chcieć przechowywać dane w bazie danych .
Rozpocznij sesję PHP
Sesja jest uruchamiana z session_start()
funkcją.
Zmienne sesji są ustawiane za pomocą globalnej zmiennej PHP: $_SESSION.
Teraz utwórzmy nową stronę o nazwie „demo_session1.php”. Na tej stronie rozpoczynamy nową sesję PHP i ustawiamy kilka zmiennych sesji:
Przykład
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Uwaga: funkcjasession_start()
musi być pierwszą rzeczą w twoim dokumencie. Przed wszelkimi tagami HTML.
Pobierz wartości zmiennych sesji PHP
Następnie tworzymy kolejną stronę o nazwie „demo_session2.php”. Z tej strony uzyskamy dostęp do informacji o sesji, które ustawiliśmy na pierwszej stronie ("demo_session1.php").
Zwróć uwagę, że zmienne sesji nie są przekazywane indywidualnie do każdej nowej strony, zamiast tego są pobierane z sesji, którą otwieramy na początku każdej strony ( session_start()
).
Zauważ również, że wszystkie wartości zmiennych sesji są przechowywane w globalnej zmiennej $_SESSION:
Przykład
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Innym sposobem wyświetlenia wszystkich wartości zmiennych sesji dla sesji użytkownika jest uruchomienie następującego kodu:
Przykład
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Jak to działa? Skąd wie, że to ja?
Większość sesji ustawia klucz użytkownika na komputerze użytkownika, który wygląda mniej więcej tak: 765487cf34ert8dede5a562e4f3a7e12. Następnie, gdy sesja jest otwierana na innej stronie, skanuje komputer w poszukiwaniu klucza użytkownika. Jeśli jest dopasowanie, uzyskuje dostęp do tej sesji, jeśli nie, rozpoczyna nową sesję.
Zmodyfikuj zmienną sesji PHP
Aby zmienić zmienną sesji, po prostu ją nadpisz:
Przykład
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Zniszcz sesję PHP
Aby usunąć wszystkie globalne zmienne sesji i zniszczyć sesję, użyj session_unset()
i session_destroy()
:
Przykład
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>