Foros del Web » Programando para Internet » PHP »

Destruir sesion

Estas en el tema de Destruir sesion en el foro de PHP en Foros del Web. Hola necesito ayuda, encontre un script para caducar o destruir una sesion despues de cierto tiempo, pero no me funciona, pasan 5min. (que es el ...
  #1 (permalink)  
Antiguo 17/05/2011, 09:32
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Destruir sesion

Hola necesito ayuda, encontre un script para caducar o destruir una sesion despues de cierto tiempo, pero no me funciona, pasan 5min. (que es el tiempo que segun esta para tener la sesion abierta) y no me redirecciona a ningun lado.


ayuda por favor.

Código PHP:
$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");
$fechaGuardada $_SESSION["ultimoAcceso"];
$ahora date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

if(
$tiempo_transcurrido >= 300) {
  
session_destroy(); 
  
header("Location:../"); 
} else {
    
$_SESSION["ultimoAcceso"] = $ahora;

  #2 (permalink)  
Antiguo 17/05/2011, 09:38
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Destruir sesion

ese script no destruye la sesion tras 5 minutos desde su creación, si no 5 minutos de inactividad

por lo tanto, si estas navegando tu página la sesion se mantendrá abierta, si quieres evitar eso, borra esta linea:

$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

if($tiempo_transcurrido >= 300) {
session_destroy();
header("Location:../");
} else {
$_SESSION["ultimoAcceso"] = $ahora;
}
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 17/05/2011, 09:42
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
Respuesta: Destruir sesion

hola
prueba eliminar las sessiones con

unset($_SESSION["ultimoAcceso"])
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #4 (permalink)  
Antiguo 17/05/2011, 10:11
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Destruir sesion

Hola gracias a los dos.

stramin no me funciono eliminando esa linea aun asi sigue la sesion abierta, se supone que me redirige a otra pagina pero no.

rodno si me esta funcionando session_destroy(); lo que pasa es que en:

if($tiempo_transcurrido >= 300) {
session_destroy();
header("Location:../");


No me esta destrullendo la sesion y direccionando al index.
  #5 (permalink)  
Antiguo 17/05/2011, 10:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Destruir sesion

Antes de destruir una sesión debes iniciarla...
Código PHP:
session_start();

// ...
if (/* lo que sea */)
{
  
session_destroy(); // etc...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/05/2011, 10:17
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Destruir sesion

ah si esta iniciad jeje es que solo puse la parte del codigo que esta tratando de destruirla deespues de sierto tiempo de aberse iniciado
  #7 (permalink)  
Antiguo 17/05/2011, 10:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Destruir sesion

Vamos a ver. No sé si me estoy obcecando y no veo más allá de mis narices, pero según entiendo yo ese algoritmo, $tiempo_transcurrido siempre vale cero.
¿Que es lo que no estoy viendo?.

tampon, ¿has hecho una traza de ese algoritmo?.
  #8 (permalink)  
Antiguo 17/05/2011, 10:45
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Destruir sesion

no como se hace?
  #9 (permalink)  
Antiguo 17/05/2011, 11:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Destruir sesion

A ver, es que no hay que hacer nada porque es trivial.

En la primera linea tienes esto:

$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");

luego haces esto:

$fechaGuardada = $_SESSION["ultimoAcceso"];

En realidad lo que haces es esto:

$fechaGuardada = date("Y-n-j H:i:s");

¿lo ves?. Luego tienes esto:

$ahora = date("Y-n-j H:i:s");

Es decir:

$fechaGuardada = date("Y-n-j H:i:s");
$ahora = date("Y-n-j H:i:s");

Ahora los restas, ¿que te da?.

A - A = ¿?

No sé si se me está escapando algo, de verdad, hoy no he dormido bien.
  #10 (permalink)  
Antiguo 17/05/2011, 12:02
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Destruir sesion

tiene toda la razón nexus XD

borra la primera linea, o sea que quede así:

$fechaGuardada = $_SESSION["ultimoAcceso"]; //si no se ha entrado entonces el valor sera nulo
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada)); // nulo-$ahora= -$ahora

if($tiempo_transcurrido >= 300) {
session_destroy();
header("Location:../");
} else { // guarda la nueva hora
$_SESSION["ultimoAcceso"] = $ahora;
}

no estoy seguro pero prueba
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #11 (permalink)  
Antiguo 18/05/2011, 19:21
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Destruir sesion

Pues no lo que pasa es que de esta forma ahora cuando me logueo me regregresa a la pagina para iniciar sesion, osea me loguea y me desconecta luego luego :s
  #12 (permalink)  
Antiguo 18/05/2011, 19:36
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Destruir sesion

Y por que no...
Código PHP:
ini_set('session.cache_expire'"duracion-en-segundos"); 
?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #13 (permalink)  
Antiguo 18/05/2011, 19:44
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Destruir sesion

esta interesante la propuesta lo intentare y luego comento

Etiquetas: Ninguno
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 09:05.