Можете да използвате mysql_num_rows()
и комбинирайте заявката си - Вижте бележките под линия
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!';
}
}
За да направите сегашния си код малко по-сигурен, използвайте:
$name = stripslashes($_POST["name"]);
$name = mysql_real_escape_string($_POST["name"]);
$password = stripslashes$_POST["password"]);
$password = mysql_real_escape_string($_POST["password"]);
но вижте връзките по-долу относно използването на подготвени оператори и хеширане на пароли.
Бележки под линия:
Настоящият ви код е отворен за SQL инжекция . Използвайте подготвени отчети , или PDO с подготвени изявления . Посетете тези връзки за повече информация.
Забелязах, че може да съхранявате пароли в обикновен текст. Ако случаят е такъв, това е силно обезкуражено.
Ако сте и това е сайт НА ЖИВО, в крайна сметка ще бъдете хакнат.
Препоръчах ви да използвате CRYPT_BLOWFISH
или password_hash()
на PHP 5.5
функция. За PHP <5.5 използвайте password_hash() compatibility pack
.
mysql_*
Известие за оттегляне на функции:
http://www.php.net/manual/en/intro.mysql .php
Това разширение е остаряло от PHP 5.5.0 и не се препоръчва за писане на нов код, тъй като ще бъде премахнато в бъдеще. Вместо това или mysqli или PDO_MySQL трябва да се използва разширение. Вижте също Преглед на MySQL API за допълнителна помощ при избора на MySQL API.
Тези функции ви позволяват да получите достъп до сървърите на базата данни MySQL. Повече информация за MySQL можете да намерите на » http://www.mysql.com/ .
Документация за MySQL може да бъде намерена на » http://dev.mysql.com/doc/ .
Редактиране: за да помогнете на OP (разгледайте връзките, които предоставих относно хеширането на пароли).
Опитайте да замените
if(mysql_num_rows($result1) > 0 )
{
$_SESSION["logged_in"] = true;
$_SESSION["naam"] = $name;
}
else
{
echo 'The username or password are incorrect!';
}
с:
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.";
}