PHP - Cerrar Session

 
Vista:

Cerrar Session

Publicado por Beto (3 intervenciones) el 21/12/2006 22:53:41
Tengo el siguiente problema.

Cuando cierro sesion me funciona todo, y si intento ir atras siempre me muestra el Index.
todo un mudo ideal hasta ahi ¿pero por que ocurre esto?. facil en cada pagina que tengo siempre esta al inicio este codigo.

<?php
.........................
session_start();
if( !isset( $_SESSION['login'] ) ){
header( "Index.php" );
}else{

/* Se mostrara toda la informacion de la pagina */
...........................
........................
}
?>

Este codigo es simple:
Primero pregunta si NO existe la variable de session(quiere decir que no se ha iniciado una sesion o en su defecto se ha cerrado la sesion matando la variable)
Entoces Mostrar Index

En caso de que si exista la variable de session
Entonces Mostrar toda la informacion de la pagina.

*****************************************************************************************
Este control tiene un pequeño problema:
1. Cierro sesion(Soy el usuario X) , entonces si presiono ir atras me muestra siempre el index hasta ahi perfecto.
Pero que pasa si inicio session como otro usuario(Usuario Y), ya estando dentro de mi session si le doy al boton atras del navegador varias veces ( podre ver la informacion de la pagina que el otro Usuario visito(osea del Usuario X) ) y esto sucede por esa porcion de codigo que esta arriba. llaque
pregunta existe la session, la respuesta es si; entonces mostrar informacion de la pagina.

No se, si se entendio el pequeño problema de el codigo de arriba.
Si no se entendio hacedmelo saber para ser un poco mas explicito.

Y mi pregunta es habra otra forma de controlar las sessiones. porque necesito solucionar ese problemita.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cerrar Session

Publicado por Juan Agote (5 intervenciones) el 22/12/2006 13:43:08
session_start();
if( !isset( $_SESSION['login'] ) ){
header( "Index.php" );
}else{

/* Se mostrara toda la informacion de la pagina */
...........................
........................
}
?>

Añadele al if , lo siguiente:

|| $_SERVER['HTTP_REFERER'] == " "

if( !isset( $_SESSION['login'] ) || ( $_SERVER['HTTP_REFERER'] == " ") ){

$_SERVER['HTTP_REFERER'], te devuelve:

La dirección de la página (si la hay) la cual refirió al agente de usuario a la página actual. Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor.

Espero que sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar