PHP -Sitzungen
Eine Sitzung ist eine Möglichkeit, Informationen (in Variablen) zu speichern, die auf mehreren Seiten verwendet werden sollen.
Im Gegensatz zu einem Cookie werden die Informationen nicht auf dem Computer des Benutzers gespeichert.
Was ist eine PHP-Sitzung?
Wenn Sie mit einer Anwendung arbeiten, öffnen Sie sie, nehmen einige Änderungen vor und schließen sie dann. Dies ist ähnlich wie eine Sitzung. Der Computer weiß, wer Sie sind. Es weiß, wann Sie die Anwendung starten und wann Sie sie beenden. Aber im Internet gibt es ein Problem: Der Webserver weiß nicht, wer Sie sind oder was Sie tun, weil die HTTP-Adresse den Status nicht behält.
Sitzungsvariablen lösen dieses Problem, indem sie Benutzerinformationen speichern, die auf mehreren Seiten verwendet werden sollen (z. B. Benutzername, Lieblingsfarbe usw.). Standardmäßig bleiben Sitzungsvariablen bestehen, bis der Benutzer den Browser schließt.
So; Sitzungsvariablen enthalten Informationen über einen einzelnen Benutzer und sind für alle Seiten in einer Anwendung verfügbar.
Tipp: Wenn Sie eine dauerhafte Speicherung benötigen, können Sie die Daten in einer Datenbank speichern .
Starten Sie eine PHP-Sitzung
Mit der session_start()
Funktion wird eine Sitzung gestartet.
Sitzungsvariablen werden mit der globalen PHP-Variablen $_SESSION gesetzt.
Lassen Sie uns nun eine neue Seite mit dem Namen "demo_session1.php" erstellen. Auf dieser Seite starten wir eine neue PHP-Session und setzen einige Session-Variablen:
Beispiel
<?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>
Hinweis: Diesession_start()
Funktion muss das allererste in Ihrem Dokument sein. Vor allen HTML-Tags.
Werte der PHP-Sitzungsvariablen abrufen
Als nächstes erstellen wir eine weitere Seite namens "demo_session2.php". Von dieser Seite aus greifen wir auf die Sitzungsinformationen zu, die wir auf der ersten Seite ("demo_session1.php") festgelegt haben.
Beachten Sie, dass Sitzungsvariablen nicht einzeln an jede neue Seite übergeben werden, sondern aus der Sitzung abgerufen werden, die wir am Anfang jeder Seite öffnen ( session_start()
).
Beachten Sie auch, dass alle Session-Variablenwerte in der globalen $_SESSION-Variablen gespeichert werden:
Beispiel
<?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>
Eine andere Möglichkeit, alle Sitzungsvariablenwerte für eine Benutzersitzung anzuzeigen, besteht darin, den folgenden Code auszuführen:
Beispiel
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Wie funktioniert es? Woher weiß es, dass ich es bin?
Die meisten Sitzungen legen einen Benutzerschlüssel auf dem Computer des Benutzers fest, der etwa so aussieht: 765487cf34ert8dede5a562e4f3a7e12. Wenn dann eine Sitzung auf einer anderen Seite geöffnet wird, durchsucht es den Computer nach einem Benutzerschlüssel. Wenn es eine Übereinstimmung gibt, greift es auf diese Sitzung zu, wenn nicht, startet es eine neue Sitzung.
Ändern Sie eine PHP-Sitzungsvariable
Um eine Sitzungsvariable zu ändern, überschreiben Sie sie einfach:
Beispiel
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Zerstöre eine PHP-Sitzung
Um alle globalen Sitzungsvariablen zu entfernen und die Sitzung zu zerstören, verwenden Sie session_unset()
and session_destroy()
:
Beispiel
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>