Você pode usar
mysql_num_rows()
e combine sua consulta - Veja as notas de rodapé 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!';
}
}
Para tornar seu código atual um pouco mais seguro, use:
$name = stripslashes($_POST["name"]);
$name = mysql_real_escape_string($_POST["name"]);
$password = stripslashes$_POST["password"]);
$password = mysql_real_escape_string($_POST["password"]);
mas veja os links abaixo sobre o uso de instruções preparadas e hash de senha.
Notas de rodapé:
Seu código atual está aberto para injeção de SQL . Use declarações preparadas , ou PDO com declarações preparadas . Visite esses links para obter mais informações.
Percebi que você pode estar armazenando senhas em texto simples. Se este for o caso, é altamente desencorajado.
Se você for e este for um site AO VIVO, você acabará sendo hackeado.
Eu recomendo que você use CRYPT_BLOWFISH ou
password_hash()
do PHP 5.5
função. Para PHP <5.5, use o password_hash() compatibility pack
. mysql_*
aviso de descontinuação de funções:http://www.php.net/manual/en/intro.mysql .php
Esta extensão está obsoleta a partir do PHP 5.5.0 e não é recomendada para escrever novo código, pois será removida no futuro. Em vez disso, o mysqli ou PDO_MySQL extensão deve ser usada. Veja também a Visão geral da API MySQL para obter mais ajuda ao escolher uma API MySQL.
Essas funções permitem que você acesse servidores de banco de dados MySQL. Mais informações sobre o MySQL podem ser encontradas em » http://www.mysql.com/ .
A documentação do MySQL pode ser encontrada em » http://dev.mysql.com/doc/ .
Editar: para ajudar o OP (veja os links que forneci sobre o hash de senha).
Tente substituir
if(mysql_num_rows($result1) > 0 )
{
$_SESSION["logged_in"] = true;
$_SESSION["naam"] = $name;
}
else
{
echo 'The username or password are incorrect!';
}
com:
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.";
}