でログイン私は最近、私のウェブサイト上での提案の多くを持っていた、そのうちの一つは、彼らが小文字でユーザー名でログインできるようにすることでした。ユーザ名とログインが、小文字のユーザー名
JOHNDOEがデータベースにそのようなユーザー名を持っていた場合、私は彼らがログインしようとしましたが、彼らはそれらの首都を置く場所を覚える必要があれば、それは非常に迷惑になるだろうと確信しています。
は、だから私は、彼らはジョン・ドウではなく、このユーザー名JOHNDOEでログインできるようにそれを作りたかったです。覚えやすい。私のクエリは、現在
$get_user_info = mysql_query("SELECT * FROM users WHERE username = '$entered_username' AND md5_username = '$md5_entered_username' AND password = '$entered_password' LIMIT 1");
され、その後、それはどのように私はこれについて行くだろう
if (mysql_num_rows($get_user_info)==1) {
//then log them in
} else {
//kick 'em out!
}
を続けるのだろうか?
なぜユーザー名のmd5ハッシュを保存して比較しますか?なぜパスワードのハッシュを保存しないのですか?それは意味をなさない! // EN:私は[SQLインジェクション](HTTPを防ぐために[PHPプリペアドステートメント](http://php.net/manual/en/pdo.prepared-statements.php)を使用していないPHPのコードを見ると – Dan
は、私が心配して取得します。 wikipedia.org/wiki/SQL_injection)の脆弱性です。私はここに貼り付けられていないコードであなたの変数を消毒することを願っています。そうでない場合は、変数をサニタイズするのではなく、PDO Prepared Statementsを使用するコードを書き直すことを検討してください。 – sarnold
Whoa、あなたはSQLインジェクションのために広く開いています。 [PHPでSQLインジェクションを止める最善の方法](http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php)のSOスレッドをチェックしてください。 – sczizzo