Visualizzazione dei risultati da 1 a 7 su 7

Discussione: problema login!

  1. #1

    problema login!

    Sto creando una pagina di login...Dopo un form si va alla pagina login2.php che ha questo codice:

    codice:
    <?
    
    $mysql['host'] = "";
    $mysql['pass'] = "";
    $mysql['user'] = "";
    $mysql['name'] = "";
    
    @mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);
    @mysql_select_db($mysql['name']);
    
    if ($username == TRUE && $password == TRUE)
    {
    $query = @mysql_query("SELECT * FROM utenti WHERE id = $username");
    $result = @mysql_fetch_array($query);
    
    if ($pass == $result[2])
    {
    
    
    echo "Ok!
    \n";
    echo "Login effettuato correttamente!";
    echo "<a href=\"./privata.php\">Entra nella sezione privata!</a>";
    }
    else
    {
    echo "Errore!
    Password errata!";
    }
    }
    else
    {
    echo "Errore!
    Non hai compilato tutti i campi obbligatori.";
    }
    
    
    @mysql_close();
    
    ?>
    Ora...Oltre al fatto che è ancora incompleto (mancano le sessioni e altra roba) Mi dice che sei registrato e quindi puoi entrare anche se non lo sei! Ma non so il perché!

    Voi sapete dirmelo?

  2. #2
    Utente di HTML.it L'avatar di Pasco
    Registrato dal
    Apr 2002
    Messaggi
    1,559
    perchè $username e $password sono comunque TRUE.

    anche se $username è errato ha comunque un valore , quindi TRUE.

    hai capito l'errore?
    PyFanatics

  3. #3
    Ma quella riga di codice serve per controllare se nel form non sono stati lasciati spazi vuoti...

  4. #4
    if (!empty($username) && !empty($password))
    Bit Manent, Scripta Volant.
    www.bitmanent.com

  5. #5
    Ho fatto come dici tu...Ma il problema rimane! Mi dà sempre login corretto e non riesco a capire perché!

  6. #6
    come dice pasco "$username e $password sono comunque TRUE" quindi puoi controllare solo che non siano vuoti nel modo in cui ti ho detto "!empty()".
    $mysql['host'] = "";
    $mysql['pass'] = "";
    $mysql['user'] = "";
    $mysql['name'] = "";
    ..sono vuoti, impossibile, almeno l'host e name!

    if ($pass == $result[2])
    cosa è $pass?? Dove è settata?? intendevi $password??

    prova a fare un'output di $result[2] e vedi cosa esce.

    WHERE id = $username
    ..non è che ti stai sbagliando nella selezione del campo??

    fa la query ed il fetch in chiaro levando @ all'inizio

    ed in fine metti un bel echo mysql_error(); dopo ogni chiamata a mysql dagli errori capisci cosa correggere.
    ciao
    luigi
    Bit Manent, Scripta Volant.
    www.bitmanent.com

  7. #7
    Ho rifatto tutto il codice ora è così:

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <?
    
    $db_host = "";
    $db_user = "";
    $db_password = "";
    $db_name = "";
    
    $myconn = mysql_connect($db_host, $db_user, $db_password);
    
    if ($myconn == FALSE)
    die ("Errore nella connessione. Verificare lo script");
    
    mysql_select_db('my_compratutto', $myconn);
    
    
    $query = "SELECT id, user, pass, Attivo FROM utenti";
    
    $resrow = mysql_fetch_row($result);
    
    
    
    $ID = $resrow[0];
    $user = $resrow[1];
    $pass = $resrow[2];
    $attivo = $resrow[3];
    
    
    if ($user == $username)
    {
    echo "L'username è corretto!";
    }
    else
    {
    echo "L'username non è corretto!";
    }
    
    mysql_close();
    
    ?>
    
    </body>
    </html>
    Poi naturalmente farei anche il controllo della password e del resto ma già così non funge...In quanto mi dà sempre username incorretto!

    WHY?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.