Ver Mensaje Individual
  #10 (permalink)  
Antiguo 28/03/2007, 19:26
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Como resolver esto?...

Cita:
Iniciado por El Patrón. Ver Mensaje
[...]asi no tendra tiempo de usar el boton back, pero si llegara a usarlo entonces deberas tener un codigo que siempre haga una consulta a la base de datos preguntando si el usuario aun esta logueado[...]
No es la solucion. Como explique en el post anterior, si la pagina que procesa el logueo es la misma que envia los datos al navegador, y despues se llama un logout que elimina la sesion, y al dar un Back, pues regresa a la pagina "exclusiva", que desafortunadamente es la misma que proceso el logueo. Esta pagina fue llamada usando el método POST, y se proceso con los datos de un formulario, por lo que el navegador devolverá que la pagina ha caducado, y le dara la opcion de refrescar la pagina si se desea enviar los datos del formulario nuevamente. Antes de iniciar sesion, el usuario no tenia ninguna fila asignada en la tabla de usuarios de la BD, asi que al enviar los datos del formulario nuevamente, lo logico es que el sistema lo procese como si recien estuviera logueandose, y creara una nueva fuila en la base de datos, y... whaala el usuario se logueo denuevo.

Cita:
Iniciado por El Patrón. Ver Mensaje
[...]deberas tener un codigo que siempre haga una consulta a la base de datos preguntando si el usuario aun esta logueado[...]
No serviria de nada, puesto que al dar en el boton Back, el navegador toma la pagina de su cache, y no la vuelve a pedir al servidor, por lo que ningún código PHP ni de cualquier otro tipo que se ejecute del lado del servidor será ejecutado. La página ya fue enviada al navegador, este la guardo en cache y pues si se la vuelve a pedir usando el Back pues tomara esta pagina guardada sin hacer ninguna peticion al servidor.

Lo mejor que puedes hacer es lo que te dije en el post anterior, que tu pagina que procesa los datos del login sea unica y exclusivamente para eso (me refiero, a que no muestre ningun tipo de contenido [que no envie nada al navegador])... Luego, usando un header('Location: ...'); dirijes a la pagina "exclusiva". Asi, al dar en logout, y si el usuario da en el boton Back, volvera al formulario y no a la pagina que lo proceso, pues ésta prácticamente no existe para el navegador...

Un saludo,