Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2009, 09:34
Avatar de Capote
Capote
 
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema con mi Login/Session entra en bucle

Hola, tengo un login que me valida los datos de el usuario que desea ingresar y si estan correctos puede pasar seteo el session en $_SESSION['usuario_autorizado'] = '1' y luego pregunto por el en todas las paginas si es correcto es un usuario valido de lo contrario no.
El problema se sucita que de manera local puedo logearme sin problemas pero si lo subo ah internet me sale esto:
Firefox ha detectado que el servidor está redirigiendo la solicitud a esta dirección de una manera en la que nunca terminará.
He estado viendo el codigo del login y no comprendo en que parte se puede estar metiendo en un ciclo.

Dejo el código:

Este es mi login.php
Código PHP:
<?php
    
//Carga de variables del Servidor de Base de Datos.
    
include "base_de_datos.php";
    
//Conexion a la Base de Datos.
    
$conexion mysql_connect($host,$usuario,$password) or die ('Error de conexion, el error es : '.mysql_error());
    
//Seleccion de la Base de Datos.
    
mysql_select_db($bd,$conexion) or die ('Error de selecion de Base de Datos, el error es : '.mysql_error());
    
//Confeccion de la consulta SQL.
    
$consulta 'select contrasena_usuario,nombre_usuario,id_estado_usuario from usuario where usuario = "'.mysql_real_escape_string($_POST['usuario']).'"';
    
//Ejecucion de la consulta SQL.
    
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
    
//Comprobación de la existancia de algún resultado.
    
if (mysql_num_rows($resultado))
    {
        
//Se recupera el registro en un array.
        
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
        {
            if (!
mysql_data_seek($resultado$i))
            {
                echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                continue;
            }
            if (!(
$registro mysql_fetch_row($resultado)))
            {
                continue;
            }
        }
        
//Chequeo de la validez del usuario.
        
if ($registro[3] == 1)
        {
            
//Chequeo de la validez del password.
            
if (sha1(mysql_real_escape_string($_POST['contrasena'])) == $registro[0])
            {
                
//Se inicia la sesion
                
session_start();
                
//Se almacenan los datos de sesion
                
$_SESSION['usuario_autorizado'] = '1';
                
$_SESSION['nombre_usuario'] = $registro[1];
                
//Envia a la pagina de Bienvenida
                
header("Location: /sistema/inicio.php");
                
//Cierra el programa.
                
exit();
            }
            else
            {
                
//Se inicia la sesion
                
session_start();
                
//Contraseña Incorrecta
                
if(isset($_SESSION['intentos']))
                {
                    
$_SESSION['intentos'] += 1;
                    if(
$_SESSION['intentos'] >= )
                    {
                        
//Confeccion de la consulta SQL.
                        
$consulta 'UPDATE usuario SET id_estado_usuario = 2 WHERE usuario = "'.mysql_real_escape_string($_POST['usuario']).'"';
                        
//Ejecucion de la consulta SQL.
                        
mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
                        unset(
$_SESSION['intentos']);
                    }
                }
                else
                {
                    
$_SESSION['intentos'] = 1;
                }
                
//Devuelve al Login.
                
header("Location: /sistema");
                
//Cierra el programa.
                
exit();
            }
        }
        else
        {
            
//Usuario Bloqueado.
            //Devuelve al Login.
            
header("Location: /sistema");
            
//Cierra el programa.
            
exit();
        }
    }
    else
    {
        
//No existe el usuario.
        //Devuelve al Login.
        
header("Location: /sistema");
        
//Cierra el programa.
        
exit();
    }
?>
Y las demás paginas:

Código PHP:

<?php
    
//Inicio de sesion.
    
session_start();
        
//Se revisa su validez.
        
if(isset($_SESSION['usuario_autorizado']))
            if(
$_SESSION['usuario_autorizado'] != '1')
                {
                    
//Usuario no autorizado.
                    //Devuelve al Login.
                    
header("Location: /sistema");
                    exit();
                }
                else 
                 
// Navegar 
                
{
                
                    
//ingreso valido
                
{
?>

Gracias!!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"