ログインしようとしたユーザーのユーザー名とパスワードを確認する単純なスクリプトを作成しようとしています。しかし、私はいくつかの問題に遭遇しています。SELECTクエリの問題 - ユーザーのログインシステム
以下のスクリプトを実行しようとすると、SUCCESSは印刷しません。しかし、ユーザー名とパスワードが間違っているかのように、実際に入力されたユーザー名とパスワードが正しいことを知っています。
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM users WHERE username='.$username.' AND password='.$password.'");
while($row = mysql_fetch_array($result)){
echo 'SUCCESS';
}
私はしかし、下のスクリプトを実行しようとすると、成功は正しいです、(私はこれまでのところ、私のデシベルを持っているサンプルユーザの数である)を2回出力します。
私は上記のAND MySQLクエリに問題があると思いますが、それは私には正しいようです...上記の最初のクエリに問題がありますか?もしそうでなければ、他に何が問題なのか?
fyi! - http://php.net/manual/en/function.mysql-real-escape-string.php – trapper
一部の人がSQLインジェクションの脆弱性について言及しましたが、データベースに平文のパスワードを格納していないことを確認してください。シンプルな 'md5()'も優れていますが、最良の結果を得るには、強力な暗号化方式と適度に長い塩を使用してください。 – davethegr8
アドバイスをいただき、ありがとうございます。私はまだウェブサイトの作成の初期段階にあり、まだセキュリティ対策を講じていません。私は確かに将来する予定です、ありがとうございます;) – AnchovyLegend