elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:54  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  tiempo de vida en sesiones php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: tiempo de vida en sesiones php  (Leído 1,582 veces)
mxsoun

Desconectado Desconectado

Mensajes: 24


Ver Perfil
tiempo de vida en sesiones php
« en: 9 Agosto 2011, 20:58 »

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();
}
?>


En línea
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.334

he vuelto :)


Ver Perfil WWW
Re: tiempo de vida en sesiones php
« Respuesta #1 en: 10 Agosto 2011, 05:31 »

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


En línea

Ojo por ojo, y el mundo acabará ciego.
EFEX


Desconectado Desconectado

Mensajes: 327


"Dinero Facil"


Ver Perfil WWW
Re: tiempo de vida en sesiones php
« Respuesta #2 en: 10 Agosto 2011, 06:38 »

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
<?php
 
//CREAR LA SESION Y REDIRECCIONAR
session_start();
$_SESSION['EXPIRA'] = strtotime("10 seconds"); //EL TIEMPO ADELANTADO 10 SEGUNDOS
header("Location: actualizarsesion.php");
 
?>
 

actualizarsesion.php
Código
<?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
En línea


GITHUB: github.com/empirefx
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines