Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] sesiones caducan al dar atras

Estas en el tema de sesiones caducan al dar atras en el foro de PHP en Foros del Web. No sé que hago mal o que debo de hacer. Tengo varias paginas en las cuales quiero hacer una session y pasar un id. Lo ...
  #1 (permalink)  
Antiguo 03/01/2014, 05:19
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años, 5 meses
Puntos: 6
sesiones caducan al dar atras

No sé que hago mal o que debo de hacer.
Tengo varias paginas en las cuales quiero hacer una session y pasar un id.
Lo que ocurre es que al dar al boton atras, pues no sale la pagina anterior, en firefox me salio pagina has expired y en chrome sale que pagina hay que confirmar.
Hay alguna manera de evitar esto?
Ya que muchos dan atras para corregir algo del formulario.

Otra cosa, estoy un poco confusa porque anoche me parecia funcionar el boton atras y no he cambiado nada, y me di cuenta de que si dejo el navegador sin tocar, se pierde la conexion por inactividad, seria mejor que se cierre la session cuando cierran el navegador o despues de x tiempo.
  #2 (permalink)  
Antiguo 03/01/2014, 07:49
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: sesiones caducan al dar atras

Lo que yo sé hacer en ese tipo de casos es cuando se envíe la información por POST y este todo correcto, redirigir con header, de esta manera evito ese comportamiento del navegador.

Lo del botón atrás puede ser que la sesión expire por la configuración de PHP (mira este tema)

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 08/01/2014, 06:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: sesiones caducan al dar atras

Cita:
Iniciado por jonni09lo Ver Mensaje
Lo que yo sé hacer en ese tipo de casos es cuando se envíe la información por POST y este todo correcto, redirigir con header, de esta manera evito ese comportamiento del navegador.
Saludos
Gracias, ya casi estoy, y al final me va a hacer falta enviar un formulario por header.
Si te entiendo bien envia el formulario por header?
osea no hay form action?
  #4 (permalink)  
Antiguo 08/01/2014, 07:39
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: sesiones caducan al dar atras

No me refiero a eso, me refiero a que cuando yo envío el formulario (común y silvestre) y este sea por método POST, lo que hago es implemente validar la informacion y realizar una redirección con header de php en caso de que todo sea correcto. Ya sea a otra pagina o a la misma, para que cuando se recargue la pagina, el navegador no vaya a molestar con el reenvio del formulario.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 08/01/2014, 07:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: sesiones caducan al dar atras

[QUOTE=jonni09lo;4551476 lo que hago es implemente validar la informacion y realizar una redirección con header de php en caso de que todo sea correcto.
Saludos[/QUOTE]

Gracias, lo pillo creo,
yo valido con ajax, y con php en la página de destino.
Sería validar con ajax y con el php en la misma página,
es decir cambiar el action por action="<?php echo $_SERVER['SCRIPT_NAME'];?>"
y reenviar las variables con el header a la página de destino.
Tendría que reestructurar la validación de php.
  #6 (permalink)  
Antiguo 08/01/2014, 07:52
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: sesiones caducan al dar atras

Puedes explicarme bien como estas trabajando y que estás haciendo exactamente (todo el flujo de información y de trabajo) para ver como podríamos optimizarlo

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 08/01/2014, 08:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: sesiones caducan al dar atras

Cita:
Iniciado por jonni09lo Ver Mensaje
Puedes explicarme bien como estas trabajando y que estás haciendo exactamente (todo el flujo de información y de trabajo) para ver como podríamos optimizarlo

Saludos
Tengo pagina:
1. paginaconsultardisponibilidadprecio: que comprueba disponibilidad y precio y si disponible envia por un formulario post propiedad y fechas a pagina 2
2. paginadisponible: que dice las condiciones de reserva y donde se elige forma de pago y que envia los datos anteriores + forma de pago a pagina 3 por formulario post. Si vuelve a esta página sin haber pagado se elimina la reserva.
3. formularioreserva: Aqui rellena datos personales etc y envia formulario por post a pagina 4, se verifica datos con ajax. Si vuelve a esta página sin haber pagado se elimina la reserva..
4. paginamedioapaypal: Aqui se verifica con php la información de pagina 3, se vuelve a comprobar disponibilidad, si no disponible o clic en boton atras desde paypal, redirección con header a pagina 1bis.
Si disponible, se genera un pdf. se inserta la reserva y redireccion automático por formulario post a paypal.
1bis. segun caso elimina reserva no pagada o dice que ya no disponible.

Creo que es todo, espero que se entienda.
Gracias
  #8 (permalink)  
Antiguo 08/01/2014, 08:44
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: sesiones caducan al dar atras

Vaya ya voy entendiendo tu pregunta...

Cita:
Iniciado por helenp Ver Mensaje
1. paginaconsultardisponibilidadprecio: que comprueba disponibilidad y precio y si disponible envia por un formulario post propiedad y fechas a pagina 2
2. paginadisponible: que dice las condiciones de reserva y donde se elige forma de pago y que envia los datos anteriores + forma de pago a pagina 3 por formulario post. Si vuelve a esta página sin haber pagado se elimina la reserva.
3. formularioreserva: Aqui rellena datos personales etc y envia formulario por post a pagina 4, se verifica datos con ajax. Si vuelve a esta página sin haber pagado se elimina la reserva..
Tienes 3 paginas que hacen POST y es perfectamente entendible el por qué el navegador te molesta cuando das atrás. En este caso particular lo mejor es usar sesiones... las sesiones no te "caducan" lo que pasa es que cuando el navegador muestra una pagina que recibe datos por medio de POST, cuando recargas la pagina necesitas por obligación que reenviar los datos...

Para solventar esto te voy a sugerir lo siguiente (todos los formularios se llamarán a si mismo y no irán a otra página):

1. paginaconsultardisponibilidadprecio: que comprueba disponibilidad y precio y si disponible envía por un formulario post propiedad y fechas. Si los datos son correctos se creara una variable de sesión que va a guardar los pasos (1, 2, 3, 4 respectivamente) en el que está y contendrá la información de cada paso. Se redirige a la pagina numero 2 por header.

2. paginadisponible: que dice las condiciones de reserva y donde se elige forma de pago y que envía los datos anteriores + forma de pago.
2.1 Si la informacion es correcta se guardara esta informacion en el paso dos de la variable de sesión. Se redirige a la pagina 3 por header
2.2 Siempre que se llegue a esta pagina se verificara si existe en la variable de sesion el paso tres. Si es asi se procede a eliminar la reserva realizada.

3. formularioreserva: Aquí rellena datos personales etc se verifica datos con ajax.
3.1 Después de hacer las verificaciones se redirige con header a la pagina 4
3.2 Siempre que se llegue a esta pagina se verificara si existe en la variable de sesión el paso cuatro. Si es así se procede a eliminar la reserva realizada.

Como nota adicional. En cada pagina puedes verificar si existen los pasos anteriores (en el paso dos se verifica si hay datos del paso 1, y en el paso 3 se verifica que hayan datos de los pasos 1 y 2), esta medida de seguridad es para evitar que no ingresen informacion

Como ves la implementación no es muy difícil y is sigues los pasos no tendrás muchos problemas...

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #9 (permalink)  
Antiguo 08/01/2014, 08:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: sesiones caducan al dar atras

Cita:
Iniciado por jonni09lo Ver Mensaje
Vaya ya voy entendiendo tu pregunta...



Tienes 3 paginas que hacen POST y es perfectamente entendible el por qué el navegador te molesta cuando das atrás. En este caso particular lo mejor es usar sesiones... las sesiones no te "caducan" lo que pasa es que cuando el navegador muestra una pagina que recibe datos por medio de POST, cuando recargas la pagina necesitas por obligación que reenviar los datos...

Para solventar esto te voy a sugerir lo siguiente (todos los formularios se llamarán a si mismo y no irán a otra página):

1. paginaconsultardisponibilidadprecio: que comprueba disponibilidad y precio y si disponible envía por un formulario post propiedad y fechas. Si los datos son correctos se creara una variable de sesión que va a guardar los pasos (1, 2, 3, 4 respectivamente) en el que está y contendrá la información de cada paso. Se redirige a la pagina numero 2 por header.

2. paginadisponible: que dice las condiciones de reserva y donde se elige forma de pago y que envía los datos anteriores + forma de pago.
2.1 Si la informacion es correcta se guardara esta informacion en el paso dos de la variable de sesión. Se redirige a la pagina 3 por header
2.2 Siempre que se llegue a esta pagina se verificara si existe en la variable de sesion el paso tres. Si es asi se procede a eliminar la reserva realizada.

3. formularioreserva: Aquí rellena datos personales etc se verifica datos con ajax.
3.1 Después de hacer las verificaciones se redirige con header a la pagina 4
3.2 Siempre que se llegue a esta pagina se verificara si existe en la variable de sesión el paso cuatro. Si es así se procede a eliminar la reserva realizada.

Como nota adicional. En cada pagina puedes verificar si existen los pasos anteriores (en el paso dos se verifica si hay datos del paso 1, y en el paso 3 se verifica que hayan datos de los pasos 1 y 2), esta medida de seguridad es para evitar que no ingresen informacion

Como ves la implementación no es muy difícil y is sigues los pasos no tendrás muchos problemas...

Saludos
Gracias, lo probaré y te cuento.
Ya estoy usando sesiones (probando) y ahora veo que en pagina 2 no debe de eliminarse la reserva, por si dan boton atras del 3 al 4 para cambiar condiciones sino en pagina 1 y 3.
Creo que probando he hecho ya 100 reservas de prueba, hay muchas posibilidades.
Ahora la ultima página, la nº 4, que es una pagina de redirección a paypal y de acciones internas, pues tambien envia por post. No sé si se puede enviar datos por header a paypal.
Pero lo más importante son las páginas anterior al último.
Gracias de nuevo.
  #10 (permalink)  
Antiguo 08/01/2014, 08:53
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: sesiones caducan al dar atras

La API de paypal creo que solo acepta peticiones POST por eso no hablé de ella en mis comentarios

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Etiquetas: sesiones
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 22:24.