Mysql
 sql >> Database >  >> RDS >> Mysql

PHP MySQL controlla se nome utente e password sono nel database

Puoi usare mysql_num_rows() e combina la tua query - Vedi le note a piè di pagina

if(isset($_POST["name"], $_POST["password"])) 
    {     

        $name = $_POST["name"]; 
        $password = $_POST["password"]; 

        $result1 = mysql_query("SELECT username, password FROM Users WHERE username = '".$name."' AND  password = '".$password."'");

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }
}

Per rendere il tuo codice attuale un po' più sicuro, usa:

$name = stripslashes($_POST["name"]); 
$name = mysql_real_escape_string($_POST["name"]);

$password = stripslashes$_POST["password"]); 
$password = mysql_real_escape_string($_POST["password"]); 

ma dai un'occhiata ai link sottostanti sull'utilizzo delle istruzioni preparate e sull'hashing delle password.

Note a piè di pagina:

Il tuo codice attuale è aperto a SQL injection . Usa dichiarazioni preparate o DOP con dichiarazioni preparate . Visita quei link per ulteriori informazioni.

Ho notato che potresti memorizzare le password in testo normale. Se questo è il caso, è altamente sconsigliato.

Se lo sei e questo è un sito LIVE, alla fine verrai violato.

Ti consiglio di usare CRYPT_BLOWFISH o password_hash() di PHP 5.5 funzione. Per PHP <5.5 usa il password_hash() compatibility pack .

mysql_* avviso di deprecazione delle funzioni:

http://www.php.net/manual/en/intro.mysql .php

Questa estensione è deprecata a partire da PHP 5.5.0 e non è consigliata per la scrittura di nuovo codice poiché verrà rimossa in futuro. Invece, il mysqli o PDO_MySQL dovrebbe essere utilizzata l'estensione. Vedi anche la Panoramica API MySQL per ulteriore aiuto durante la scelta di un'API MySQL.

Queste funzioni consentono di accedere ai server di database MySQL. Ulteriori informazioni su MySQL sono disponibili all'indirizzo » http://www.mysql.com/ .

La documentazione per MySQL è disponibile all'indirizzo » http://dev.mysql.com/doc/ .

Modifica: per aiutare OP (controlla i collegamenti che ho fornito sull'hashing delle password).

Prova a sostituire

        if(mysql_num_rows($result1) > 0 )
        { 
            $_SESSION["logged_in"] = true; 
            $_SESSION["naam"] = $name; 
        }
        else
        {
            echo 'The username or password are incorrect!';
        }

con:

while($row=mysql_fetch_assoc($result1))
{
$check_username=$row['username'];
$check_password=$row['password'];
}

if($username == $check_username && $password == $check_password){
echo "Matches.";
}

else{
echo "No match found.";
}