Bueno tengo una aplicacion restringida por modulo de login de usuarios, el sistema es bastante standard, basicamente utiliza sessiones para restringir el ingreso a paginas protegidas, con el Firefox no tengo ningun problema, pero si con el IE7 y el IE6 , se que existe este problema y le ha sucedido a muchos pero no he encontrado una solucion seria y consistente, basicamente es que la session vive solamente en la pagina que la crea pero al pasar a otra pagina la session ya pierde su valor, y por lo que pude averiguar por mi cuenta es que el IE7 bloquea las cookies indiscriminadamente entonces supongo que por eso no debe andar, tambien dicen que al utilizar
Código PHP:
header ("Location: index.php");
esto hace perder el valor de la session en internet explorer, con lo cual para solucionar parcialmente este problema lo que utilice fue reemplazar lo anterior Por esto:
Código PHP:
include_once("index.php");
Pero esto me puede traer problemas de redifinicion de variables entonces no lo veo como una solucion seria, prolija y consistente.
Pongo mi codigo:
Este es el codigo de la pagina que evalua los datos de usuario y contraseña y decide si dejarlo pasar o no, en donde se inicializa la variable de sesion:
Código PHP:
<?
//NOTA:
require('../inc/acceso_DB.php');
//Recupero variables
$Usuario = $_POST["txtUsuario"];
$Contrasena = $_POST["txtPass"];
//armo la sentencia sql para encontrar al usuario
$sqlstring = "select * from Usuarios where Usuario ='$Usuario' and Password ='$Contrasena'";
//ejecuto la sentencia
$resultset = mysql_query($sqlstring);
//procedemos a permitir el acceso en caso de que los datos sean correctos
//en caso contrario procedemos a restringir el acceso
if (mysql_num_rows($resultset)!=0)
{
session_start();
$_SESSION['autentificado']="SI";
$usuario_datos = mysql_fetch_array($resultset);
//Traigo estos datos para guardarlos en sesiones para usarlos en diferentes procesos
$_SESSION['IdUsuario'] = $usuario_datos['IdUsuario'];
$_SESSION['NombreUsuario'] = $usuario_datos['Nombre'];
$_SESSION['ApellidoUsuario'] = $usuario_datos['Apellido'];
$_SESSION['NickUsuario'] = $usuario_datos['Usuario'];
header ("Location: Inicio.php");
//include_once("Inicio.php"); die();
}
else
{
header ("Location: ErrorLogeo.php");
//include_once("ErrorLogeo.php"); die();
}
mysql_free_result($resultset);
?>
Luego tengo la pagina de capa de seguridad que pongo al principio de cada pagina que quiero que este restringida.
Código PHP:
<?
session_start();
//COMPRUEBA QUE EL USUARIO ESTE AUTENTFICADO
if (!isset($_SESSION['autentificado']))
{
//si es que esta variable no tiene ningun valor lo mando a la pagina de error
header ("Location: ErrorLogeo.php");
//y finalmente salgo de este script
exit();
}
else
{
if ($_SESSION['autentificado']!="SI")
{
//si no existe lo mando a la pagina de error de logeo
header ("Location: ErrorLogeo.php");
//y finalmente salgo de este script
exit();
}
}
?>
Bueno como ven es bastante basico pero no funciona en internet explorer vi por ahi en algunos foros que tambien lo que intentaban hacer era reemplazar la funcion $_session por la vieja y conocida $HTTP_SESSION_VARS
pero tampoco me funciono.
A alguno le paso esto?? lo pudieron solucionar?? agradesco cualquier sugerencia.
Saludos.