Session-ID in PHP

Habdul Hazeez 30 Januar 2023
  1. Überprüfung der Session-ID mit der Funktion session_id()
  2. Festlegen und Abrufen einer Benutzersitzungs-ID aus der Variablen $_session[] in PHP
  3. Session-ID erhalten mit var_dump() in PHP
  4. Session-ID und Eindeutigkeit
Session-ID in PHP

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 avatar Habdul Hazeez avatar

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

Verwandter Artikel - PHP Session