Hay dos funciones PHP muy similares session_destroy() y session_unset(). Ambos parecen eliminar todas las variables registradas en una sesión, pero hay una diferencia entre ellos.
Función session_destroy(): Destruye todos los datos asociados con la sesión actual. No desarma ninguna de las variables globales asociadas con la sesión, ni desarma la cookie de sesión.
Sintaxis:
bool session_destroy( void )
función session_unset(): Elimina solo las variables de la sesión y la sesión aún existe. Solo se truncan los datos.
Sintaxis:
bool session_unset( void )
Ejemplo 1: este ejemplo guarda la sesión usando el archivo 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' ; ?>
Producción:
Antes de usar la función session_unset(): Antes de usar la función de sesión, muestra el nombre y el correo electrónico.
<?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>'; ?>
Producción:
Después de usar la función session_unset(): Esta función destruye las variables como ‘nombre’ y ‘correo electrónico’ que se están usando.
<?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(); ?>
Producción:
Función session_destroy(): Destruye toda la sesión en lugar de destruir las variables. Cuando se llama a session_start(), PHP establece la cookie de sesión en el navegador. Necesitamos eliminar las cookies también para destruir completamente la sesión.
Ejemplo: Este ejemplo se usa para destruir la sesión.
<?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(); ?>
Salida:
la ejecución del archivo session.php puede ver que hay una ID de sesión diferente, lo que significa que la sesión anterior se ha destruido y todas las variables y cookies también se han destruido. Dado que todas las variables se destruyeron, PHP va a otra condición de salida ‘la sesión se destruye’.
Nota: Si se desea finalizar la sesión, también elimine la cookie de sesión. Esto destruirá la sesión, y no solo los datos de la sesión.
Publicación traducida automáticamente
Artículo escrito por ashishsaini3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA