Ver Mensaje Individual
  #12 (permalink)  
Antiguo 06/09/2012, 07:01
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Script simplificado de login, (llevo todo el día intentando depurarlo)

No lo he probado a fondo, pero cambiando un par de cosas funciona bien.

Aún así, la forma más sencilla de descartar, es probar primero con variables locales
Código PHP:
$pass sha1('mypass'); 
Si después va todo correcto, empiezas a probar con las variables que provienen de url's o formularios.

Te he dejado algunas notas.

Lo he probado sin las funciones tuyas, así que al cambiarlo, para dejarlo como si lo ejecutases en tu máquina, igual se fue algo, pero debería salirte el error en el navegador.

Código PHP:
error_reporting(E_ALL);
ini_set("display_errors"1); // Estas dos líneas activan los errores en el navegador. 
session_start();

include(
"modulo.php"); // MODULO.php es un archivo que contiene la funcion limpiar_sql para evitar ataques de SQL inyection, no influlle para nada en las variables finales (en este caso de $nick)

$pass sha1($_POST['passlogin']);
$nick limpiar_sql($_POST["nicklogin"]);

if( isset(
$nick) && isset($pass) ) //comprueba si están definidas
{
    
$link mysqli_connect('localhost''********''*******''********');

    if( !
$link )
    {
        die(
'Connect Error (' mysqli_connect_errno() . ') ' mysqli_connect_error());
        echo 
"imposible conectar con la base de datos";
        exit;
    }
    else
    {
        
$query "SELECT nick, contrasena FROM Usuarios WHERE nick = '$nick' AND contrasena = '$pass'";
        
$result mysqli_query($link$query); //<-- Falta el link en la query
        
if( !$result )
        {
            echo 
"nombre o contraseña erroneos";
            exit;
        }
    }
    
    if( 
mysqli_num_rows($result) == // "<=" Menor o igual que 0, es 0, con == es suficiente.
    
{
        echo 
"nombre y contraseña no existen";
        exit;
    }
    
    if( 
$result )
    {
        
$_SESSION["valid_user"] = true//por ejemplo
        
$_SESSION["name"] = $nick;
    }
    
    echo 
'Está conectado el usuario ' . ($_SESSION["name"])? $_SESSION["name"] : 'Guest' '? ' . ($_SESSION["valid_user"])? 'Si' 'NO';

__________________
Todos agradeceremos que pongas el código en su respectivo Highlight