Foros del Web » Programando para Internet » PHP »

destruir una sesion después de un tiempo determinado

Estas en el tema de destruir una sesion después de un tiempo determinado en el foro de PHP en Foros del Web. Necesito saber como puedo destruir automáticamente una sesion después de un tiempo determinado, por ejemplo 5, 10 o 20 minutos. Les agradecería agradecería si me ...
  #1 (permalink)  
Antiguo 18/11/2005, 12:08
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
destruir una sesion después de un tiempo determinado

Necesito saber como puedo destruir automáticamente una sesion
después de un tiempo determinado, por ejemplo 5, 10 o 20 minutos.

Les agradecería agradecería si me envían algún ejemplo del código
aplicado en php.
  #2 (permalink)  
Antiguo 18/11/2005, 13:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si estás usando sesiones de PHP (www.php.net/session) .. PHP no gestiona el tiempo de vida de una sesión por separado sino que lo hace global para toda sesión que se inicie en el servidor.

Teniendo eso presente ... el tema de expiraciónde sesiónes no pasa (por lo menos las que PHP gestiona por defecto) por cierto código sino por configuración de PHP.

concretamente la directiva:

session.gc_maxlifetime
(teóricamente se puede alterar su valor por ini_set() en tiempo de ejecución)

Un saludo,
  #3 (permalink)  
Antiguo 18/11/2005, 16:33
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 7 meses
Puntos: 0
Independientemente de lo apuntado por Cluster, tal vez un vistazo a este fragmento te pueda dar una idea de por dónde va la cosa.

Un saludo.

Código PHP:
    $self $_SERVER["PHP_SELF"];
    
$do_time_out true;            //  limitado?
    
$session_time 30;                //  en minutos


    
$time "";
    
$time_out false;
    if( 
$do_time_out == true ) { 
        
$real_session_time $session_time 6000;
        
$now explode" "microtime() );
        
$time $now[1].substr$now[0], 2);
        
settype$time"double" );
        if( isset( 
$_SESSION["login_at"] ) ) {
            if( 
$_SESSION["login_at"] < ( $time $real_session_time ) ) {
                
$message "se acabó";
                
$time_out true;
            }
        }
    }

    if( 
$time_out == true ) {
        
session_unset();
        echo 
'<meta http-equiv="refresh" content="0;URL=',$self,'?message=',$message,'">';
        exit;
    } 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:41.