お問い合わせがありましたら、
SELECT (...) FROM User WHERE Username = (...) AND Password = (...);
ユーザーが無効なユーザー名を入力した場合、ユーザー名が間違っていたことを特定する方法はありますか?
これは、「ユーザーが存在しません」など、より具体的なエラー メッセージをユーザーに表示できるようにするためです。
お問い合わせがありましたら、
SELECT (...) FROM User WHERE Username = (...) AND Password = (...);
ユーザーが無効なユーザー名を入力した場合、ユーザー名が間違っていたことを特定する方法はありますか?
これは、「ユーザーが存在しません」など、より具体的なエラー メッセージをユーザーに表示できるようにするためです。
SELECT COUNT(*) AS `count` FROM `User` WHERE `Username` = ...;
if( $result['count'] < 1 )
{
// no user
}
// repeat for pass.
ユーザー名を選択し、パスワードが一致した場合はビットフィールドをオンにします。したがって、WHERE句からパスワード部分を削除し、SELECT句に移動します。次に、一致する行がないということは、無効なユーザー名を意味します。行がある場合は、そのフィールドをチェックして、パスワードが一致するかどうかを確認する必要があります。
SELECT (...) IF(password=?, 1, 0) as success
FROM User
WHERE Username = ?
このようにすることに固執している場合は、次のことができます。
SELECT password FROM user WHERE username = ?
レコードが見つからない場合、ユーザー名は存在しません。一致する場合は、パスワードを比較できます。