Możesz użyć mysql_num_rows()
i połącz swoje zapytanie — Zobacz przypisy
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 uczynić swój obecny kod nieco bezpieczniejszym, użyj:
$name = stripslashes($_POST["name"]);
$name = mysql_real_escape_string($_POST["name"]);
$password = stripslashes$_POST["password"]);
$password = mysql_real_escape_string($_POST["password"]);
ale spójrz na poniższe linki dotyczące używania przygotowanych wyciągów i hashowania haseł.
Przypisy:
Twój obecny kod jest otwarty na wstrzyknięcie SQL . Użyj przygotowanych wyciągów lub PDO z przygotowanymi oświadczeniami . Odwiedź te linki, aby uzyskać więcej informacji.
Zauważyłem, że możesz przechowywać hasła w postaci zwykłego tekstu. Jeśli tak jest, jest to wysoce odradzane.
Jeśli tak, a to jest strona NA ŻYWO, w końcu zostaniesz zhakowany.
Polecam użycie CRYPT_BLOWFISH
lub PHP 5.5 password_hash()
funkcjonować. Dla PHP <5.5 użyj password_hash() compatibility pack
.
mysql_*
powiadomienie o wycofaniu funkcji:
http://www.php.net/manual/en/intro.mysql .php
To rozszerzenie jest przestarzałe od PHP 5.5.0 i nie jest zalecane do pisania nowego kodu, ponieważ zostanie usunięte w przyszłości. Zamiast tego albo mysqli lub PDO_MySQL należy użyć rozszerzenia. Zobacz także Omówienie interfejsu API MySQL aby uzyskać dalszą pomoc przy wyborze API MySQL.
Te funkcje umożliwiają dostęp do serwerów baz danych MySQL. Więcej informacji o MySQL można znaleźć na » http://www.mysql.com/ .
Dokumentację MySQL można znaleźć pod adresem » http://dev.mysql.com/doc/ .
Edytuj: aby pomóc OP (spójrz na podane przeze mnie linki dotyczące haszowania haseł).
Spróbuj wymienić
if(mysql_num_rows($result1) > 0 )
{
$_SESSION["logged_in"] = true;
$_SESSION["naam"] = $name;
}
else
{
echo 'The username or password are incorrect!';
}
z:
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.";
}