Revista Blog

Cerrar sesión en PHP por inactividad, comparto el código

Por Mauricio Sevilla @configuroweb
Cerrar sesión en PHP por inactividad, comparto el código

Varios portales por la importancia de la información y previniendo que un usuario pueda dejar desatendido su acceso, tienen la configuración de auto cierre de sesión por tiempo de expiración.

El sistema básicamente lo que hace es que registra la hora del acceso y el tiempo en que no se está realizando ninguna actividad en la aplicación y pasado, para este ejemplo los 60 segundos, se cierra sesión automáticamente.

Esta aplicación diseñada para cerrar sesión en PHP por inactividad permite en adición crear usuarios para que se puedan hacer las validaciones fácilmente.

Video explicativo del funcionamiento y desarrollo de la aplicación

El proceso se explica a cabalidad en el vídeo a continuación:

Cerrar sesión en PHP por inactividad, comparto el código

Explicación del código del software para cerrar sesión en PHP por inactividad

La aplicación consta de una archivo de conexión a la base de datos llamado conn.php con los parámetros de conexión por defecto de XAMPP, un usuario root, sin contraseña y el nombre de la base de datos cerrasesion.

La lógica del software re cae sobre una validación de la función time() que se toma de la super global SESSION donde se valida si el tiempo de inactividad es mayor a 60 segundos, en caso tal, se manda un parámetro para el archivo logout_page.php que no tiene mayor lógica que la función session_destroy() y una landing page básica con algo de información.

Para ingresar registros en la base de datos se utiliza el archivo save_query.php que recibe información de la index.php donde está el formulario.

Puesta a punto del sistema en un servidor local

Para instalar este software puedes descargar el sistema del repositorio que tengo colgado en GitHub en el siguiente enlace:

Cerrar Sesión en PHP por Inactividad

El código SQL de la base de datos es la siguiente, el nombre que le debes poner es cerrarsesion:

-- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Servidor: 127.0.0.1 -- Tiempo de generación: 14-05-2021 a las 22:04:50 -- Versión del servidor: 10.4.11-MariaDB -- Versión de PHP: 7.4.4 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de datos: `cerrarsesion` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `user` -- CREATE TABLE `user` ( `user_id` int(11) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `name` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Volcado de datos para la tabla `user` -- INSERT INTO `user` (`user_id`, `username`, `password`, `name`) VALUES (1, 'configuroweb', '1234abcd..', 'Administrador'), (2, 'usuario', '1234abcd..', 'Juan'), (3, '', '', ''); -- -- Índices para tablas volcadas -- -- -- Indices de la tabla `user` -- ALTER TABLE `user` ADD PRIMARY KEY (`user_id`); -- -- AUTO_INCREMENT de las tablas volcadas -- -- -- AUTO_INCREMENT de la tabla `user` -- ALTER TABLE `user` MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Para más detalles sobre el proceso puedes ver una publicación previa donde explico como instalar aplicaciones PHP en un servidor local si deseas subir el proyecto a un hosting puedes ver el vídeo tutorial a continuación:

Subir pagina con PHP + Base de datos (MYSQL) a un Hosting

Cualquier duda quedo al pendiente !!


Volver a la Portada de Logo Paperblog