Foro de elhacker.net

Programaciķn => PHP => Mensaje iniciado por: mxsoun en 9 Agosto 2011, 20:58 pm



Título: tiempo de vida en sesiones php
Publicado por: mxsoun en 9 Agosto 2011, 20:58 pm
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
Código:
<?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();
}
?>


Título: Re: tiempo de vida en sesiones php
Publicado por: Nakp en 10 Agosto 2011, 05:31 am
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


Título: Re: tiempo de vida en sesiones php
Publicado por: EFEX en 10 Agosto 2011, 06:38 am
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
Código
  1. <?php
  2.  
  3. //CREAR LA SESION Y REDIRECCIONAR
  4. $_SESSION['EXPIRA'] = strtotime("10 seconds"); //EL TIEMPO ADELANTADO 10 SEGUNDOS
  5. header("Location: actualizarsesion.php");
  6.  
  7. ?>
  8.  

actualizarsesion.php
Código
  1. <?php
  2.  
  3. $_SESSION['TIEMPO'] = time(); //ACTUALIZAR LA HORA
  4.  
  5. //SI NO SE DECLARO $_SESSION['EXPIRA'] VOLVERLA A DECLARAR
  6. if (empty($_SESSION['EXPIRA'])) { header("Location: crearsesion.php"); }
  7.  
  8. if ((!empty($_SESSION['TIEMPO'])) AND (!empty($_SESSION['EXPIRA'])) AND ($_SESSION['TIEMPO'] > $_SESSION['EXPIRA'] )) {
  9.    //SI SE EXCEDE EL TIEMPO ASIGNADO EN $_SESSION['EXPIRA'] DESTRUIR LA SESION
  10.    session_unset();
  11.    //REDIRECCIONAR
  12. }
  13.  
  14. echo $_SESSION['TIEMPO'].'<br>';
  15. echo $_SESSION['EXPIRA'];
  16.  
  17. ?>
  18.  

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)