Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Login!

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163

    Login!

    ciao! sto scrivendo uno script x effettuare il login ma non funziona.Si tratta di un semplice form che richiede Nome e Password dell'utente,che andranno poi confrontati con quelli esistenti nella tabella Utenti del db.ecco il codice:

    Codice PHP:
    echo'<form action="questostessoscript.php" method="post">
    <label for="nome">Nome:</label>
    <input type="text" name="nome"></br>
    <label for="pass">Password:</label>
    <input type="password" name="pass"></br>
    <input type="submit" name="log" value="Login">
    </form>'
    ;

    if(isset(
    $_POST['log']))
    {
    $connessione=mysql_connect("localhost","user","pass");
    mysql_select_db("db",$connessione);
    @
    $querylog="SELECT '".$_POST['nome']."' FROM utenti WHERE `nome` = '".$_POST['nome']."'";

    if (
    $log=mysql_query($querylog))
    echo
    "Login effettuato!";
    else echo 
    "niente login";
    mysql_close($connessione);

    mi rende la echo "Login effettuato!" sempre,anche se il nome che inserisco nel form nn esiste.
    (qui manca il controllo della password,che aggiungerò dopo aver risolto questo)
    illuminatemi!

  2. #2
    if ($log=mysql_query($querylog))

    E' sbagliato come fai la query, come sopra citato l'if restituisce sempre true.

  3. #3
    La query corretta è questa:
    Codice PHP:
    if(isset($_POST['log']))
    {
    $connessione=mysql_connect("localhost","user","pass");
    mysql_select_db("db",$connessione);
    $querylog="SELECT $_POST[nome] FROM utenti WHERE nome = '$_POST[nome]'";

    if (
    mysql_query($querylog))
    {
    echo
    "Login effettuato!";
    }
    else
    { echo 
    "niente login";
    }
    mysql_close($connessione);


  4. #4
    Mi correggo in questo modo!forse causa stanchezza ho scritto una banalità
    Codice PHP:
    $querylog="SELECT nome FROM utenti WHERE nome = '$_POST[nome]'"

  5. #5
    Beh, non è male come sistema di autenticazione. Basta inserire un nome utente qualsiasi e si è autenticati....

    Forse bisogna cercare una riga nella quale il nome utente inserito corrisponda alla password.
    Poi direi che non è sufficiente eseguire la query. Bisognerebbe verificare con mysql_num_rows che risulti una riga che corrisponde alle richieste.
    Infine questo codice è vulnerabilissimo ad attacchi basati su sql injection

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    @Elmapomap: dici che la if controlla solo se viene eseguita la query,non se funziona correttamente?

    @E.d.i.73: grazie per la risposta,purtroppo però non funziona! il tuo codice mi da sempre la echo "niente login"

    @mtx_maurizio:come ho scritto all inizio del post,inserirò anche il controllo della password,ma ora non posso dato che non so come funziona nemmeno quello x il nick! comunque puoi spiegarmi in cosa consistono gli attacchi sql injection?

    grazie a tutti per le risposte!

  7. #7
    Leggi questo

    http://www.mtxweb.ch/php_learn/?p=864

    Se vuoi realizzare uno script di autenticazione, sono cose che devi assolutamente conoscere.
    ------------------------

    - Non controllare l'esecuzione della query, ma l'effettiva esistenza della riga nel db.

    Codice PHP:
    $res mysql_query($querylog);

    if(
    mysql_num_rows($res))
    {
       ..... 
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    ok cosi funziona perfettamente!
    ho letto l'articolo,molto interessante!complimenti per il sito!


    grazie mille

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.