Foros del Web » Programando para Internet » PHP »

Problema con sesiones y el Internet Explorer 7 !

Estas en el tema de Problema con sesiones y el Internet Explorer 7 ! en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/04/2009, 17:07
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Problema con sesiones y el Internet Explorer 7 !

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.

Última edición por @padawan@; 20/04/2009 a las 09:01
  #2 (permalink)  
Antiguo 18/04/2009, 17:30
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Problema con sesiones y el Internet Explorer 7 !

si lo cambias asi

Código PHP:
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();
      } 
por que como planteas tu sesion es parecida a como yo lo empleo y no me da problemas ni en firefox ni en IE7
  #3 (permalink)  
Antiguo 18/04/2009, 18:03
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con sesiones y el Internet Explorer 7 !

No sigue sin andar, ademas tecnicamente es lo mismo.
  #4 (permalink)  
Antiguo 18/04/2009, 18:12
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con sesiones y el Internet Explorer 7 !

Código php:
Ver original
  1. if (mysql_num_rows($resultset)!=0)
  2.    {
  3.  
  4.    $_SESSION[['autentificado']="SI";

Siempre pon el session_start() antes que TODO.

¿Haz verificado que tu IE no esta bloqueando las COOKIES?

Haz una prueba simple con 2 archivos:

archivo1.php
Código PHP:
<?php
session_start
();
$_SESSION['hola'] = "Hola mundo";
echo 
'<a href="pagina2.php">pagina2</a>';
?>
Ahora crea otro archivo2.php :
Código PHP:
<?php
session_start
();
var_dump($_SESSION['hola']);
?>
  #5 (permalink)  
Antiguo 20/04/2009, 08:26
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con sesiones y el Internet Explorer 7 !

Cita:
Iniciado por Ronruby Ver Mensaje
Código php:
Ver original
  1. if (mysql_num_rows($resultset)!=0)
  2.    {
  3.  
  4.    $_SESSION[['autentificado']="SI";

Siempre pon el session_start() antes que TODO.

¿Haz verificado que tu IE no esta bloqueando las COOKIES?

Haz una prueba simple con 2 archivos:

archivo1.php
Código PHP:
<?php
session_start
();
$_SESSION['hola'] = "Hola mundo";
echo 
'<a href="pagina2.php">pagina2</a>';
?>
Ahora crea otro archivo2.php :
Código PHP:
<?php
session_start
();
var_dump($_SESSION['hola']);
?>

el session_start lo pongo siempre, hice la prueba con las dos paginitas y en el firefox anda bien pero en el IE tira valor NULL, ya no se que hacer.
  #6 (permalink)  
Antiguo 20/04/2009, 08:30
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con sesiones y el Internet Explorer 7 !

Cita:
¿Haz verificado que tu IE no esta bloqueando las COOKIES?
  #7 (permalink)  
Antiguo 20/04/2009, 08:40
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con sesiones y el Internet Explorer 7 !


EL sistema de bloqueo es el determinado en el nivel de privacidad medio de internet explorer. es decir se ve que bloquea las cookies o las considera peligrosas no lo se, porque si bajo el nivel de privacidad a bajo me loguea perfectamente, pero no es solo problema del IE de mi maquina, el nivel medio de privacidad es el predeterminado por default en todos los IE tanto version 6 como 7, bueno gracias por la ayuda, si se te ocurre algo mas te agradesco, yo sigo investigando.
  #8 (permalink)  
Antiguo 20/04/2009, 08:49
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 4 meses
Puntos: 6
De acuerdo Respuesta: Problema con sesiones y el Internet Explorer 7 !

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"// aca el error, fijate que tenes 2 corchetes de apertura
   
     
   
$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); 

$_SESSION[['autentificado']="SI"; // aca el error, fijate que tenes 2 corchetes de apertura
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #9 (permalink)  
Antiguo 20/04/2009, 09:00
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con sesiones y el Internet Explorer 7 !

Cita:
Iniciado por aldo1982 Ver Mensaje
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"// aca el error, fijate que tenes 2 corchetes de apertura
   
     
   
$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); 

$_SESSION[['autentificado']="SI"; // aca el error, fijate que tenes 2 corchetes de apertura
Si perdon ese error me habia quedado cuando probaba con el el viejo http_vars y el $_SESSION , el error ya esta corregido, me olvide de quitarlo aqui, de todas maneras sigue sin funcionar.-
  #10 (permalink)  
Antiguo 20/04/2009, 21:16
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema con sesiones y el Internet Explorer 7 !

El nivel de privacidad en el internet explorer por default esta en medio si lo pongo en baja anda perfecto, entonces el problema esta ahi pero no se como solucionarlo, me pregunto yo como solucionaran esto los programadores de php ??? esto antes no me pasaba es muy raro.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:15.