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を使用することをお勧めします
またはPHP5.5のpassword_hash()
働き。 PHP <5.5の場合は、 password_hash() compatibility pack
を使用します。
。
mysql_*
機能の廃止通知:
http://www.php.net/manual/en/intro.mysql .php
この拡張機能はPHP5.5.0で非推奨になり、将来削除されるため、新しいコードの記述にはお勧めしません。代わりに、 mysqli
または
これらの関数を使用すると、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.";
}