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.";
}