Foros del Web » Programando para Internet » PHP »

controlar sesiones caducadas

Estas en el tema de controlar sesiones caducadas en el foro de PHP en Foros del Web. Saludos tengo un problema el cual no he podido solucionar a pesar de varios intentos. Tengo una aplicacion la cual pide la autenticacion de un ...
  #1 (permalink)  
Antiguo 10/03/2006, 07:42
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
controlar sesiones caducadas

Saludos tengo un problema el cual no he podido solucionar a pesar de varios intentos. Tengo una aplicacion la cual pide la autenticacion de un usuario antes de acceder al sitio, si el usuario es correcto la sesion se graba en una base de datos, un proceso totalmente normal, dentro de la validacion de existencia de la sesion verifico si la sesion ha terminado, si la sesion a pasado de un determinado tiempo X el cual yo defino envio nuevamente a la pantalla de logueo, todo correcto pero el problema es que dentro de la pantalla de logueo cuando se caduca la sesion presiono F5 para actualizar la pagina esta me envia directamente al sitio y esto es porque tengo almacenadas las variables $_POST['login'] y $_POST['clave'] que quedaron almacenadas desde la primera vez que el usuario ingreso al sistema.
Si alguien me da una pista para solucionar esto o como puedo hacer el proceso de logueo tomando en cuenta duracion de las sesion se los agradeceria mucho.
  #2 (permalink)  
Antiguo 10/03/2006, 09:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 98
Antigüedad: 19 años, 3 meses
Puntos: 0
Bueno no se si te valdra, pero ¿has probado a hacer unsset($_POST['login']) y de la clave una vez que ya has comprobado que el usuario está autorizado?

Saludos
  #3 (permalink)  
Antiguo 10/03/2006, 09:18
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
La verdad es que si intente eso y nada, pongo una seccion del codigo que utilizo para hacer este control

$limite = time() - $limite_sesion;
if ($dato_sesion['tiempo_sesion']<$limite){
if ($_SESSION['controltiempo']==1){
$this->valida_usuario();
$_SESSION['controltiempo']=0;
}else{
$_SESSION['controltiempo']=0;
$this->pantalla_login();
}
}

el problema es que debo tener una variable en la sesion para evitar ingresar directamente a la pantalla de login porque entra en un lazo infinito pero al hacer este proceso q t muestro se queda grabada los datos de ingreso
  #4 (permalink)  
Antiguo 10/03/2006, 09:22
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
No creo que rompiendo $_POST['login'] lo solucione, por que de hecho realmente lo necesitas para loguear. Lo que se me ocurre como solución rápida es create un hidden con el time() actual, y antes de loguear verifica que ese time sea no menor al actual menos el timestamp x de tu caducidad.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 10/03/2006, 09:33
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
No te entiendo muy bien esa parte pero igual ¿no tendria los datos de login y password en memoria y al momento de verificar el usuario loguearia sin problema? la verdad es que es la primera vez q deseo controlar el tiempo de las sesiones y por eso mi problema porque tengo el modulo que verifica el usuario y funcina sin problema. T agradeciria si me explicas mejor tu respuesta eso me seria de mucha ayuda. Y gracias por su tiempo.
  #6 (permalink)  
Antiguo 10/03/2006, 09:42
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Por lo que comprendí el problema esta, en si esta recién logueado en la pagina que lo loguea.
Si es así podrías simplemente redirigir una vez logueado, la lógica sería:
Código:
Pagina con formulario
       Pagina que valida
            Correcto
                 Redireccionas con header(), lo que no dejaría la cache del form.
            Incorrecto
                 De nuevo a Pagina con Formluario
Con esto estoy seguro que lo solucionas. Lo que te decia en el otro post es, que pongas un campo hidden:
Código PHP:
<input type="hidden" name="tiempo" value="<?php echo time();?>" />
Esto cargaría el momento (en timestamp) que carga la pagina. Si hace un f5 como decís, y $_POST["tiempo"] menos time(), al momento de levantar los datos, es un lapzo de tiempo que no quieres, no válidas mandándolo nuevamente al login.
De todas maneras me quedo con la opción de redireccionar.


No se si se comprende...
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 10/03/2006 a las 09:51
  #7 (permalink)  
Antiguo 10/03/2006, 10:29
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
gracias por tu ayuda voy a probar con esas recomendaciones que me das.
  #8 (permalink)  
Antiguo 10/03/2006, 11:30
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
T comento el resultado, me fui por tu recomendacion de redireccionar y perfecto funciona bien pero ahora tengo una inquietud, para poder tomar la url de la pagina a la que quiero entrar la grabo en una variable en la sesion, bueno esta la forma que utilice, pero no se que tan recomendable es grabar la url en una variable de sesion, existe algun otro metodo de acceder a esta direccion desde la pagina de login a la cual redireccione para el logueo, o acaso me estoy haciendo un gran problema de algo pequeño, gracias por sus comentarios.
  #9 (permalink)  
Antiguo 10/03/2006, 11:50
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Yo uso una session llamada history ($_SESSION["history"]) donde voy guardando alguno lugares que me interesan...hasta he usado en algún momento esto mismo de dos dimensiones $_SESSION["lugar"][nivel]...
Si bien suelo usar otras maneras para saber de donde viene o donde debe ir lo que trato de decir es que ponerlo en una session no es mala idea para mi punto de vista, aunque depende mucho del resultado final que quieras/necesites.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 10/03/2006, 11:55
 
Fecha de Ingreso: agosto-2005
Ubicación: Quito, Ecuador
Mensajes: 255
Antigüedad: 18 años, 8 meses
Puntos: 0
bueno basicamente es una aplicacion financiera por lo que me interesa mucho el nivel de seguridad que se tenga para evitar que se pueda visualizar la información mucho menos manipularla, claro que no es una aplicaicon a gran escala pero de todas formas interesa este tema. Si bien es cierto al obtener la url de una sesion se puede tratar de direccionar a esa url pero de igual manera se pedira autenticar al usuario, porque desde mi punto de vista esto no es tan grave, ahora no se si existen algunos puntos que no se tiene en cuenta y que dan optras posibilidades para hacer esto y que no los veo ya que no poseo mucha experiencia.
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 17:15.