Můžete použít mysql_num_rows()
a zkombinujte svůj dotaz – Viz poznámky pod čarou
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!';
}
}
Aby byl váš současný kód o něco bezpečnější, použijte:
$name = stripslashes($_POST["name"]);
$name = mysql_real_escape_string($_POST["name"]);
$password = stripslashes$_POST["password"]);
$password = mysql_real_escape_string($_POST["password"]);
ale podívejte se na níže uvedené odkazy o použití připravených příkazů a hašování hesel.
Poznámky pod čarou:
Váš současný kód je otevřen pro vložení SQL . Použijte připravená prohlášení , nebo CHOP s připravenými výpisy . Navštivte tyto odkazy pro více informací.
Všiml jsem si, že možná ukládáte hesla v prostém textu. Pokud je tomu tak, důrazně se nedoporučuje.
Pokud ano a toto je LIVE stránka, budete nakonec napadeni.
Doporučuji vám používat CRYPT_BLOWFISH
nebo PHP 5.5 password_hash()
funkce. Pro PHP <5.5 použijte password_hash() compatibility pack
.
mysql_*
upozornění na ukončení podpory funkcí:
http://www.php.net/manual/en/intro.mysql .php
Toto rozšíření je od PHP 5.5.0 zastaralé a nedoporučuje se pro psaní nového kódu, protože bude v budoucnu odstraněno. Místo toho buď mysqli nebo PDO_MySQL je třeba použít rozšíření. Viz také Přehled rozhraní MySQL API pro další pomoc při výběru MySQL API.
Tyto funkce umožňují přístup k databázovým serverům MySQL. Více informací o MySQL naleznete na » http://www.mysql.com/ .
Dokumentaci pro MySQL lze nalézt na » http://dev.mysql.com/doc/ .
Upravit: pomoci OP (podívejte se na odkazy, které jsem uvedl ohledně hašování hesel).
Zkuste vyměnit
if(mysql_num_rows($result1) > 0 )
{
$_SESSION["logged_in"] = true;
$_SESSION["naam"] = $name;
}
else
{
echo 'The username or password are incorrect!';
}
s:
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.";
}