Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Problemas con autentificator y IE

Estas en el tema de Problemas con autentificator y IE en el foro de Sistemas de gestión de contenidos en Foros del Web. He modificado el aut_verifica a lo siguiente Código PHP: // Cargar datos conexion y otras variables. require ( "config.php" ); $usuarios_sesion = "autentificator" ; // chequear página que lo llama para devolver errores a dicha página. $url  =  explode ( "?error" , $_SERVER ...
  #1 (permalink)  
Antiguo 27/08/2004, 07:58
 
Fecha de Ingreso: abril-2002
Mensajes: 18
Antigüedad: 22 años
Puntos: 0
Problemas con autentificator y IE

He modificado el aut_verifica a lo siguiente

Código PHP:
// Cargar datos conexion y otras variables.
require ("config.php");
$usuarios_sesion="autentificator";

// chequear página que lo llama para devolver errores a dicha página.

$url explode("?error",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;

if (
$_SERVER['HTTP_REFERER'] == "")
{
if (
$_GET[direccion]!='')
{
$url1 explode("&avisa",$_GET[direccion]);
$_GET[direccion]=$url1[0];
$_SERVER['HTTP_REFERER']=$_GET[direccion];
}
elseif (
$_POST[direccion]!='')
{
$_SERVER['HTTP_REFERER']=$_POST[direccion];
}
}

// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == "")
{
die (
"Error cod.:1 - Acceso incorrecto!");
exit;
}


// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['usuario']) && isset($_POST['pass'])) 
{

// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexionmysql_connect("$DB_SERVER""$DB_USER""$DB_PASS") or die(header ("Location:  $redir?error_login=0"));
mysql_select_db("$DB_NAME");

// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta mysql_query("SELECT * FROM usuarios WHERE usuario='".$_POST['usuario']."'") or die(header ("Location:  $redir?error_login=1"));

 
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 
if (mysql_num_rows($usuario_consulta) != 0
 {

    
// eliminamos barras invertidas y dobles en sencillas
    
$login stripslashes($_POST['usuario']);
    
// encriptamos el password en formato md5 irreversible.
    
$password stripslashes($_POST['pass']);

    
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_array($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($db_conexion);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // página de error.
    
if ($login != $usuario_datos['usuario']) 
        {
           
Header ("Location: $redir?error_login=4");
        exit;
        }

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la página de error
    
if ($password != $usuario_datos['password'])
        {
        
Header ("Location: $redir?error_login=3");
        exit;
        }
        
    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta página.
    
session_cache_limiter('nocache,private');
    
    
// Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.

     //definimos $usuario_id con el id del usuario de la sesión actual
    
$_SESSION['usuario_id']=$usuario_datos['id_usuario'];       
       
    
//definimos $usuario_password con el password del usuario de la sesión actual
    
$_SESSION['usuario_pass']=$usuario_datos['password'];
    
    
//definimos $usuario_usuario con el nombre del navegante
    
$_SESSION['usuario_usuario']=$usuario_datos['usuario'];
    
    
//definimos $usuario_nombre con el nombre del usuario asociado al pass
    
$_SESSION['usuario_nombre']=$usuario_datos['nombre'];
    
    
//definimos $usuario_perfil con el nombre del perfil asociado al usuario
    
$_SESSION['usuario_perfil']=$usuario_datos['perfil'];
    
    
//definimos $usuario_perfil con el nombre del perfil asociado al usuario
    
$_SESSION['usuario_empresa']=$usuario_datos['empresa'];

    
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    
$pag=$_SERVER['PHP_SELF'];
    
Header ("Location: $pag?");
    exit;
    
   } 
   else 
        {
      
// si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      
Header ("Location: $redir?error_login=2");
      exit;
      }
      

else 
{

// -------- Chequear sesión existe -------

// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
session_start();

// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.

if (!isset($_SESSION['usuario_id']) && !isset($_SESSION['usuario_pass']) && !isset($_SESSION['usuario_usuario']) && !isset($_SESSION['usuario_nombre']) && !isset($_SESSION['usuario_perfil']) && !isset($_SESSION['usuario_empresa']))
{
// Borramos la sesion creada por el inicio de session anterior
die (header ("Location:  $redir?error_login=7"));
exit;
}

Y funciona perfectamente en mi pc usando la url http://127.0.0.1, pero usando la direccion de mi pc en la red no me funciona (http://mi_nombre), tengo IE 6.0. Lo más extraño es que funciona excelente en la red para las versiones 5.0 del Internet Explorer, pero todas las versiones 6.0 muestra el error 7 (Error: Acceso incorrecto, ya ha cerrado la sesión. Vuelva a ingresar.)

Help me, me estoy volviendo loco

Gracias
Mauricio
  #2 (permalink)  
Antiguo 27/08/2004, 09:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio supongo que conoceras que Autentificator (por el tipo de redireccionamientos que hace y para comodidad tuya en tu programación) propaga el SID en cookies. Esto requiere de un navegador que acepte cookies.

Por lo demás ..podrías tener algún tipo de problema con:

// Paranoia: decimos al navegador que no "cachee" esta página.
session_cache_limiter('nocache,private');

Por defecto PHP usa:
nocache
(corrobolalo en un phpinfo() o en tu php.ini)

Podrías probar:
session_cache_limiter('public');

U otras sugerencias que veras en los comentarios de los usuarios de:
http://www.php.net/session_cache_limiter

Un saludo,
  #3 (permalink)  
Antiguo 29/08/2004, 11:46
 
Fecha de Ingreso: abril-2002
Mensajes: 18
Antigüedad: 22 años
Puntos: 0
Casualmente encontré la solución: en vez de colocar en la URL mi nombre en la red, puse mi la ruta de mi máquina...

Gracias por tu respuesta...
Mauricio
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 14:30.