tiempo sesion por navegador inactividad hacer como cierre cierra cerrar caducar php

sesion - Cierre de sesión automático después de 15 minutos de inactivo en php



como hacer un cierre de session en php (5)

Quiero destruir la sesión si los usuarios no están realizando ningún tipo de actividad en el sitio web. En ese momento después de 5 usuarios redirigir automáticamente en la página de índice. ¿Como es posible? Es posible en PHP con manejo de sesión y para eso tengo que mantener o actualizar el tiempo de inicio de sesión del usuario o no.


Mi solución es (te doy una solución, pero esta simple y sintaxis no se ha probado)

checkerOrCreatorTime.php

<?php //if using the session, this additional advice me ini_set(''session.cookie_httponly'', 1); ini_set(''session.use_only_cookies'', 1); session_start(); //create session (JUST FOR ONE TIME) if (!isset($_SESSION[''THE SESSION KEY FOR LOGIN (EX. USERNAME)''])){ //create anyting session you need $_SESSION[''user''][''THE SESSION KEY FOR LOGIN (EX. USERNAME)''] = ''USER''; $_SESSION[''user''][''TIME''] = ''900''; }else if (time() -$_SESSION[''TIME''] > 900){ unset($_SESSION[''user'']); // and whatever your decision } ?>

Preguntas más frecuentes:

1. Why use [''user''] is session login? if you using many session for user, you just unset one var, like this. 2. why use a ini_set.... in this syntax? for more security

Si te gusta usar web moderna, solo usa javascript para ajax


Muy fácil:

if(time() - $_SESSION[''timestamp''] > 900) { //subtract new timestamp from the old one echo"<script>alert(''15 Minutes over!'');</script>"; unset($_SESSION[''username''], $_SESSION[''password''], $_SESSION[''timestamp'']); $_SESSION[''logged_in''] = false; header("Location: " . index.php); //redirect to index.php exit; } else { $_SESSION[''timestamp''] = time(); //set new timestamp }


Obtuve esta solución de Sitepoint.com usando una etiqueta meta simple en su html

<meta http-equiv="refresh" content="900;url=logout.php" />

El 900 es el tiempo en segundos que desea que finalice la sesión si está inactiva.

Espero que funcione para ti


session_start(); $t=time(); if (isset($_SESSION[''logged'']) && ($t - $_SESSION[''logged''] > 900)) { session_destroy(); session_unset(); header(''location: index.php''); }else {$_SESSION[''logged''] = time();}


<form action="index.php" method="post" name="frm"><input name="uname" type="text" placeholder="User Name" /> <input name="pass" type="password" placeholder="Password" /> <input name="submit" type="submit" value="submit" /></form> In index.php <?php if(isset($_SESSION[''loggedAt''])) { header(''dashboard.php''); } if(isset($_POST[''submit''])) { $name=$_POST[''uname'']; $pass=$_POST[''pass'']; if($name=="admin" &amp;amp;amp;&amp;amp;amp; $pass=="1234") { session_Start(); $_SESSION[''username'']=$name; $_SESSION[''loggedAt'']=time(); header(''location:dashboard.php?msg=Welcome to dashboard''); } } ?> in dashboard.php if(time() - $_SESSION[''loggedAt''] > 240) { echo"<script>alert(''Your are logged out'');</script>"; unset($_SESSION[''username''], $_SESSION[''loggedAt'']); header("Location: " . index.php); exit; } else { $_SESSION[''loggedAt''] = time(); }