session_unset() vs session_destroy() in PHP
Es gibt zwei sehr ähnliche PHP-Funktionen session_destroy() & session_unset(). Beide scheinen alle in einer Sitzung registrierten Variablen zu löschen, aber es gibt einen Unterschied zwischen ihnen.
Funktion session_destroy(): Sie zerstört alle Daten, die mit der aktuellen Sitzung verbunden sind. Es setzt keine der der Sitzung zugeordneten globalen Variablen oder das Sitzungscookie zurück.
Syntax:
bool session_destroy( void )
Funktion session_unset(): Sie löscht nur die Variablen aus Session und Session existiert noch. Nur Daten werden abgeschnitten.
Syntax:
bool session_unset( void )
Beispiel 1: Dieses Beispiel speichert die Sitzung mithilfe der Datei session.php .
<?php // Function to start session session_start(); // Display the session id echo session_id(); // Check the session name exists or not if( isset($_SESSION['name']) ) { echo '<br>' . 'session is set.'; } else { echo '<br>' . 'session is destroyed'; } $_SESSION['name'] = 'GeeksForGeeks'; $_SESSION['email'] = 'GeeksForGeeks@email.com' ; ?>
Ausgabe:
Vor der Verwendung der Funktion session_unset(): Vor der Verwendung der Sitzungsfunktion werden Name und E-Mail angezeigt.
<?php // Function to start session session_start(); // Check the session name exists or not if( isset($_SESSION['name']) ) { echo 'session is set.'; } else { echo 'please set the session'; } echo $_SESSION['name'].'<br>'; echo $_SESSION['email'].'<br>'; ?>
Ausgabe:
Nach Verwendung der Funktion session_unset(): Diese Funktion zerstört die Variablen wie „Name“ und „E-Mail“, die verwendet werden.
<?php // Function to start session session_start(); // Check the session name exists or not if( isset($_SESSION['name']) ) { echo 'session is set.' ; } else { echo 'session variables deleted'; } echo $_SESSION['name']; echo $_SESSION['email']; // Use session_unset() function session_unset(); ?>
Ausgabe:
Funktion session_destroy(): Sie zerstört die gesamte Sitzung, anstatt die Variablen zu zerstören. Wenn session_start() aufgerufen wird, setzt PHP das Session-Cookie im Browser. Wir müssen die Cookies auch löschen, um die Sitzung vollständig zu zerstören.
Beispiel: Dieses Beispiel wird verwendet, um die Sitzung zu zerstören.
<?php // Function to start session session_start(); // Check the session name exists or not if( isset($_SESSION['name']) ) { echo 'session is set.'.'<br>' ; } else { echo 'session is destroyed'.'<br>'; } echo $_SESSION['name'].'<br>'; echo $_SESSION['email'].'<br>'; $_SESSION = array(); // If it's desired to kill the session, also // delete the session cookie. // Note: This will destroy the session, and // not just the session data! if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // Finally, destroy the session. session_destroy(); ?>
Ausgabe:
Bei der Ausführung der Datei session.php können Sie sehen, dass es eine andere Sitzungs-ID gibt, was bedeutet, dass die vorherige Sitzung zerstört wurde und alle Variablen und Cookies ebenfalls zerstört wurden. Da alle Variablen zerstört sind, geht PHP zur Else-Bedingungsausgabe „Sitzung ist zerstört“.
Hinweis: Wenn Sie die Sitzung beenden möchten, löschen Sie auch das Sitzungscookie. Dadurch wird die Sitzung zerstört und nicht nur die Sitzungsdaten.