En PHP, creamos sesiones para el usuario que ha iniciado sesión y hacemos que ese usuario esté en línea hasta que el usuario cierre la sesión. Se puede hacer haciendo clic en el botón de cierre de sesión o destruyendo esa sesión después de un tiempo fijo.
De forma predeterminada, el tiempo de caducidad de cualquier sesión en particular que se cree es de 1440 segundos, es decir, (24*60), es decir, 24 minutos. Pero en algunos casos, necesitamos cambiar el tiempo predeterminado en consecuencia.
Podemos hacerlo de 2 maneras.
1. Podemos cambiarlo en el archivo php.ini y cambiar la configuración, pero eso cambiará el tiempo predeterminado para todos los sitios que trabajan en ese servidor y eso será un obstáculo para todos los demás sitios. Entonces, la segunda opción es preferible .
2. Lógicamente podemos cambiar el tiempo de destrucción de la sesión. Tomamos la hora de la creación de la sesión calculando la hora actual del sistema y, a medida que el usuario navega por las diferentes páginas del script, comprobará la hora de caducidad, es decir, se declara explícitamente como caducidad de la sesión.
Estructura del archivo:
index.php: si ingresa las credenciales incorrectas, arrojará un error. Si ingresa las credenciales correctas, será redirigido a » HomePage.php» y destruirá la sesión después de 1 minuto. El desarrollador puede cambiar el tiempo en consecuencia.
PHP
<?php session_start(); if(@$_POST['submit']) { $username = $_POST['email']; $password = $_POST['pwd']; if($username =="GFG@gmail.com" && $password=="gfg123") { $_SESSION['user'] = $username; // Taking current system Time $_SESSION['start'] = time(); // Destroying session after 1 minute $_SESSION['expire'] = $_SESSION['start'] + (1 * 10) ; header('Location: HomePage.php'); } else { $err= "<font color='red'>Invalid user login </font>"; } } ?> <html> <head> <style> h2 { text-align: center; } </style> </head> <body> <h2 style="color:green">GeeksforGeeks</h2> <form method="post"> <table align="center"> <tr> <td> <?php echo @$err;?> </td> </tr> <tr> <td>Username </td> <td><input type="email" name="email" placeholder="GFG@gmail.com" required> </td> </tr> <tr> <td>Password</td> <td><input type="password" name="pwd" placeholder="gfg123" required> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Sign In" name="submit"> </td> </tr> </table> </form> </body> </html>
HomePage.php
<?php session_start(); if(!isset($_SESSION['user'])) { echo "<p align='center'>Want to login again"; echo "<a href='index.php'>Click Here to Login</a></p>"; } else { $now = time(); if($now > $_SESSION['expire']) { session_destroy(); echo "<p align='center'>Session has been destoryed!!"; header("Location: index.php"); } else { ?> <html> <head> <meta http-equiv="refresh" content="10"> </head> <body> <p> Welcome <?php echo $_SESSION['user']; ?> <span style="float:right"> <a href='logout.php'>LogOut</a></span> <p style="padding-top: 20px; background:#CCCCCC; height: 400px; text-align: center"> <span style="color:red; text-align:center"> Your Session Will destroy after 1 minute </span> <br /><br /> </p> </p> <?php } } ?> </body> </html>
logout.php
<?php session_start(); session_destroy(); header('location:index.php'); ?>
Producción: