
Es importante saber manejar sesiones en PHP para aplicarlos en diferentes proyectos web, por ello aprenderemos como hacer Login con PHP y MySQL con sesiones. No sin antes invitarte a revisar el post sobre como agregar usuarios a base de datos MySQL.
Crear login de usuario
Para crear este proyecto necesitaremos crear los siguientes archivos:
login.html
checklogin.php
panel-control.php
logout.php
login.html
En este archivo creamos un formulario al estilo ventana modal y agregamos dos inputs: username y password, donde efectivamente le pediremos al usuario sus credenciales y las enviamos a checklogin.php para que nos valide los campos y posteriormente de paso al perfil de usuario que deseemos.
checklogin.php
Iniciamos el script agregando un inicio de sesion y los datos de conexión, luego se toman los datos provenientes de login.html verificando que existan en la base de datos.
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM $tbl_name WHERE nombre_usuario = '$username'";
Si todo va bien se almacenan los datos de sesion y se redirecciona al panel de control. Caso contrario el usuario deberá volver a login.
Algo nuevo que encontraremos en el archivo es el tiempo para desactivar la sesion por tiempo de inactividad:
$_SESSION['expire'] = $_SESSION['start'] + (5 * 60);
Establecemos en 5 minutos el tiempo, luego el usuario deberá iniciar sesion nuevamente por motivos de seguridad.
panel-control.php
Se accede a un pequeño panel de control para que el usuario vea sus datos, informes, etc. Aqui tu agregas lo que quieras que el usuario vea en su perfil.
Algo muy importante es que se monitorea a cada momento el tiempo de sesion iniciado. Transcurridos los 5 minutos se cerrará por inactividad.
Se agrega también un botón para cerrar sesión php, el cual llama al archivo logout.php que ejecuta el siguiente código:
<?php
session_start();
unset ($SESSION['username']);
session_destroy();
header('Location: http://localhost/Login/login.html');
?>
Con este archivo lograrás cerrar al usuario y direccionamiento a la página de login nuevamente u otra sección si así lo prefieres:
header('Location: http://localhost/Login/login.html');
¿Tienes dudas o comentarios al respecto? Escríbenos para mayor asistencia.