quiero crear una sesion y que tenga un tiempo de vida de 5 minutos y despues se elimine, me encontre este codigo en internet pero no me funciona.
pero es justo lo que busco, no se por que no funciona
<?php
ini_set("session.cookie_lifetime","300");
session_start();
$_SESSION["time"] = time();
if (time() - $_SESSION["time"] < 300) {
echo 'no ha pasado 5 minutos';
}else{
echo 'ha pasado mas de 5 minutos';
session_destroy();
}
?>
error de lógica :P será porque asignas una nueva hora justo antes de comprobar si ya pasaron 300 segundos? "no me funciona" no dice nada
Ademàs, se dice que no es del todo exacto usar session.cookie_lifetime o session.gc_maxlifetime, yo lo haria de la siguiente forma:
crearsesion.php
<?php
//CREAR LA SESION Y REDIRECCIONAR
session_start();
$_SESSION['EXPIRA'] = strtotime("10 seconds"); //EL TIEMPO ADELANTADO 10 SEGUNDOS
header("Location: actualizarsesion.php");
?>
actualizarsesion.php
<?php
session_start();
$_SESSION['TIEMPO'] = time(); //ACTUALIZAR LA HORA
//SI NO SE DECLARO $_SESSION['EXPIRA'] VOLVERLA A DECLARAR
if (empty($_SESSION['EXPIRA'])) { header("Location: crearsesion.php"); }
if ((!empty($_SESSION['TIEMPO'])) AND (!empty($_SESSION['EXPIRA'])) AND ($_SESSION['TIEMPO'] > $_SESSION['EXPIRA'] )) {
//SI SE EXCEDE EL TIEMPO ASIGNADO EN $_SESSION['EXPIRA'] DESTRUIR LA SESION
session_destroy();
session_unset();
//REDIRECCIONAR
}
echo $_SESSION['TIEMPO'].'<br>';
echo $_SESSION['EXPIRA'];
?>
Lo demas corre por cuenta tuya como implementarlo a lo que queres...
Fuente: http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes/1270960#1270960 (http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes/1270960#1270960)