今日はずっと考えていたのですが、ユーザー名とパスワードがそれぞれ正しいかどうかを判定したいと思います
書いたコードは以下の通りです:
$user = $ _POST["user"];
$pwd = $_POST[ "pwd"];
$str=mysql_query("SELECT * FROM member WHERE user = '$user' AND pwd='$pwd'"); =mysql_fetch_array($str);
if($line[1] && $line[2]){
echo "アカウントのパスワードが正しい"
}else if(!$line[1]){
var_dump($line) [1]);
echo "アカウントのパスワードが間違っています"; }else if(!$line[2]){
echo "パスワードが間違っています";
ディスカッションに返信(解決策)
2つのSQLを書き、1つはユーザー名を渡すもの、もう1つはパスワードを渡すもので、2つのSQLで見つかった2つの結果をそれぞれ判断します
2 つの判定が記述されます:
1. SQL は、ユーザー名がSELECT * FROM member WHERE user = ' $user' であるかどうかを判定します。
2. SELECT * FROM member WHERE user = '$user' AND pwd='$pwd' 最初のものが正しい場合は、ユーザー名が正しいことを意味します。2 番目のものが間違っている場合は、パスワードが間違っていることを意味します まず、両方を空にすることはできません。ユーザー名は存在します。パスワードとユーザー名は両方とも正しく、成功しました。コード内の対応関係が正しいと仮定します
$user = $_POST["user"];$pwd = $_POST["pwd"];$str = mysql_query("SELECT * FROM member WHERE user = '$user' or pwd='$pwd'");$line = mysql_fetch_array($str);if($line[1] == $user && $line[2] == $pwd){ echo "账号密码正确";}else if($line[1] != $user){ var_dump($line[1]); echo "账号错误";}else if($line[2] != $pwd){ echo "密码错误";}