session_unset() vs session_destroy() en PHP

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *