Session-ID in PHP
-
Überprüfung der Session-ID mit der Funktion
session_id()
-
Festlegen und Abrufen einer Benutzersitzungs-ID aus der Variablen
$_session[]
in PHP -
Session-ID erhalten mit
var_dump()
in PHP - Session-ID und Eindeutigkeit
Eine der Hauptverwendungen einer Session-ID ist die Identifizierung von Benutzern oder Ereignissen in einer Webanwendung. Dieser Artikel erklärt, wie Sie mit Hilfe von integrierten PHP-Funktionen wie session_start()
und session_id()
mit der PHP-Session-ID arbeiten können.
Überprüfung der Session-ID mit der Funktion session_id()
Bevor Sie nach einer Session-ID suchen können, müssen Sie eine PHP-Sitzung mit session_start()
starten. Anschließend können Sie die Funktion session_id()
aufrufen. Diese Funktion gibt die aktuelle Session-ID zurück.
<?php
session_start();
echo session_id();
?>
Ausgabe:
3rd5hnbqgjhi3fq4b2edsajq81
Hinweis: Die obige Session-ID unterscheidet sich von Ihrer, wenn Sie den Code ausführen.
Festlegen und Abrufen einer Benutzersitzungs-ID aus der Variablen $_session[]
in PHP
PHP-Variable $_SESSION
ist ein assoziatives Array, das die PHP-Sitzungsvariablen des aktuellen Skripts enthält. Sie können dem Array ein bestimmtes Schlüssel-Wert-Paar hinzufügen, es aus dem Array löschen oder die gesamte Variable $_SESSION
leeren.
Sie können die Details authentifizierter Benutzer in der Variablen $_SESSION
speichern. Zuvor müssen Sie eine PHP-Session starten. Sobald die Sitzung aktiv ist, können Sie eine Sitzung für einen authentifizierten Benutzer registrieren. Anschließend können Sie die Session-ID verwenden, um den Benutzer im gesamten System zu verfolgen. Wenn sich der Benutzer abmeldet, können Sie die Sitzung zerstören.
Im nächsten Codeblock finden Sie Details zum Festlegen und Abrufen einer Benutzersitzungs-ID.
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// The username of the user. On most occasions,
// you'll get this from a MySQL query
$username = "DelftStack";
// Register a session for the user
$_SESSION['username'] = $username;
// Display the session id and the registered
// register
echo "The session id is: " . $session_id;
echo "<br /> The session has been registered to: " . $username;
?>
Ausgabe:
The session id is: d7ao75228pobka332fqeho10l3
The session has been registered to: DelftStack
Denken Sie daran, dass sich Ihre Session-ID von der oben angezeigten unterscheidet.
Sie können die Sitzung mit dem folgenden Code zerstören:
<?php
if (isset($_SESSION['username'])) {
// Reset the session
unset($_SESSION);
// Destroy the session
session_destroy();
if (empty($_SESSION)) {
echo "Session destroyed...";
}
}
?>
Ausgabe:
Session destroyed...
Session-ID erhalten mit var_dump()
in PHP
Die Funktion var_dump()
gibt die Details zu einer Variablen aus, einschließlich der Variablen $_SESSION[]
. Starten Sie die Sitzung und speichern Sie die Session-ID in einer Variablen, um mit diesem Prozess zu beginnen. Sobald sich die Session-ID in einer Variablen befindet, können Sie sie mit var_dump
ausgeben.
Der nächste Codeblock zeigt, wie man die Session-ID mit var_dump()
erhält.
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// store the session id in the
// session variable
$_SESSION['id'] = $session_id;
// Dump the username
var_dump($_SESSION['id']);
?>
Ausgabe:
string(26) "7qfm3qvjj1vku6h78p73qh9jmn"
Hinweis: Ihre Session-ID unterscheidet sich von der oben angezeigten.
Session-ID und Eindeutigkeit
Es wird empfohlen, keine neue Sitzung zu starten, wenn Sie eine eindeutige Kennung für einen Benutzer benötigen. Dann kommt eine Funktion wie uniqid()
ins Spiel. Wenn Sie jedoch eine aktive Sitzung haben, können Sie session_id()
verwenden. Verlassen Sie sich dennoch nicht auf die Eindeutigkeit.
Hier ist der Grund: Ein Webbrowser mit mehreren Registerkarten verwendet denselben Prozess. Infolgedessen verwenden sie dieselbe Sitzungskennung. Dies bedeutet, dass verschiedene Benutzerverbindungen dieselbe ID haben.
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn