Destruir la sesión de PHP

Destruir la sesión de PHP
Cuando un usuario visita un sitio web en el navegador, la cantidad de tiempo que pasa ese usuario en ese sitio web se llama sesión para ese usuario. Cuando un usuario cierra el navegador o el cierre de sesión desde el sitio, la sesión expira. La información de la sesión se puede almacenar utilizando una cookie en la computadora del cliente o utilizando el script PHP que se almacena en el servidor. La información almacenada por la cookie puede ser pirateada fácilmente por acceso no autorizado. Entonces, la forma de almacenar información de la sesión utilizando la cookie no está garantizado. PHP tiene algunas funciones incorporadas y variables de sesión para mantener y destruir la información de la sesión de los usuarios. El camino a la variable de sesión unset y destruir la sesión de PHP se ha mostrado en este tutorial.

Variable de sesión unset

Los datos de sesión particular se pueden eliminar utilizando la función unset (). La función session_unset () se utiliza para borrar todos los datos relacionados con la sesión de una sesión en particular. PHP usa una matriz asociativa de $ _session para mantener los datos de la sesión.

Sintaxis:

La sintaxis del session_unset () La función ha dado a continuación.

void session_unset ();

Se utiliza para desanimar la sesión actual borrando todos los datos relacionados con la sesión de la matriz de $ _session. No devuelve nada.

Ejemplo-1: variable de sesión unset

Eliminar la sesión utilizando la función session_unset () se ha mostrado en el siguiente ejemplo. Cree un archivo PHP con el siguiente script Cree una sesión para los usuarios autenticados y verifique un valor de la matriz de $ _ _session después de destruir la sesión. Se utiliza un formulario en el script para tomar el nombre de usuario y la contraseña.

A continuación, estos valores se compararán con los valores específicos para verificar la autenticación. Se creará una sesión utilizando la función session_start () para el usuario si el nombre de usuario y la contraseña son correctos. Si el usuario visite la página web, la sesión se borrará utilizando la función session_unset () para verificar la sesión actual se destruye o no.

// verifique que el formulario se envíe o no
if (isset ($ _ post ['enviar']))

// Verifique los campos de nombre de usuario y contraseña están vacíos o no
if (isset ($ _ post ['un']) && isset ($ _ post ['pw']))

$ username = $ _post ['un'];
$ contraseña = $ _post ['pw'];
// Verifique la autenticación del usuario
if ($ username == 'admin' && $ contraseña == 'secreto')

// Iniciar sesión para el usuario autenticado
session_start ();
eco "";
// Verifique la variable de sesión
if (isset ($ _ sesión ['name']))

// Imprimir mensaje de bienvenida
echo bienvenido.
';
// uniscar la sesión para el usuario
session_unset ();
// Verifique la variable de sesión después de unset
Echo "El valor de la sesión después de unset:".$ _Session ['Nombre']."
";

demás

// Establecer la variable de sesión
$ _Session ['name'] = 'administrador';
// imprime la variable de sesión
Echo "La variable de sesión está establecida para".$ _Session ['Nombre']."
";

eco "";

demás

// Imprimir mensaje de error para usuario no válido
Echo "El nombre de usuario o la contraseña no está configurado
";



demás

?>



Ejemplo de sesión unset



Nombre de usuario:



Contraseña:









?>

Producción:
La siguiente salida aparecerá después de ejecutar el script anterior. El usuario debe proporcionar un nombre de usuario y contraseña válidos antes de enviar el formulario. Según el script, el nombre de usuario válido es 'administración'Y la contraseña es'secreto'.

La siguiente salida aparecerá si el nombre de usuario correcto y la contraseña son enviados por el formulario y se generará una nueva sesión para el usuario.

La siguiente salida aparecerá si el usuario vuelve a visitar la página nuevamente. Si la sesión existe para el usuario, el usuario recibirá el mensaje ','Bienvenido de nuevo'y la función session_unset () destruirá la sesión para ese usuario. El mensaje de advertencia aparecerá en la salida porque la variable de sesión estará indefinida después de llamar a la función session_unset (). Pero este mensaje de advertencia se puede omitir usando Error_reporting directiva.

Destruir la sesión de PHP

La función session_destroy () se usa para destruir todas las variables de sesión de los visitantes. Simplemente destruye los datos de la sesión, pero la variable súper global PHP, $ _session contiene los datos de la sesión. Los valores de esta matriz se eliminarán si el script finaliza o el usuario cierra la sesión. La matriz de $ _session se puede crear inicializando una matriz vacía.

La cookie PhpSessid se puede mantener en la computadora del usuario sin datos después de destruir la sesión si la cookie del navegador está habilitada en la computadora del usuario. En este caso, cuando el usuario revise nuevamente la página, se generará una nueva sesión para el usuario, incluso existe la cookie PhpSessid. La sintaxis de esta función se ha mostrado a continuación.

Sintaxis:

void session_destroy ();

Esta función no tiene ningún argumento y no devuelve nada.

Ejemplo-2: destruir sesión usando session_unset ()

La forma de destruir todos los tipos de información de sesión utilizando la función session_unset () se ha mostrado en el siguiente ejemplo. Cree un archivo PHP con el siguiente script para crear una sesión predeterminada para los visitantes generales, establecer el nombre de la sesión y la fecha de vencimiento usando la función setcookie () e imprima el nombre de la sesión después de destruir la sesión usando la función session_unset ().

// Comience la sesión para el visitante
session_start ();
// Establecer la cookie de sesión para el visitante
if (session_id () != "" || isset ($ _ cookie [session_name ()]))
setcookie (session_name (), ", Time () - 42000, '/');
// imprime el nombre de sesión predeterminado
echo "El nombre de sesión predeterminado es".session_name ()."
";
// Imprima la fecha de caducidad de la sesión
Echo "La fecha de caducidad de la sesión es".Fecha ('D-M-Y', Time ()+5000000)."
";
// destruir toda la información de la sesión
session_destroy ();
if (session_id () == "")
La sesión de eco "ha destruido.";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. Aquí, la sesión se ha creado con el tiempo de vencimiento y se destruyó más tarde usando la función session_destroy ().

Conclusión

Se han explicado dos formas de destruir las sesiones de PHP en este tutorial con ejemplos. Las funciones session_unset () y session_destroy () se han utilizado en este tutorial para destruir cualquier sesión existente. El desarrollador de PHP puede usar cualquiera de estas funciones para destruir sesiones en PHP.