PHP奇怪的比较

PHP weird comparison

我在注册表单中输入了两项,一项是登录名,一项是密码。调用 AJAX 后,我正在尝试验证这些数据并使用以下函数:

function test_input($data) {

if( $data == $_POST["login"] && $data == "" ){
    $GLOBALS["message"] .= "<p>Empty login.</p>";
    return;
    }

elseif( $data == $_POST["pwd"] && $data == "" ){
    $GLOBALS["message"] .= "<p>Empty password.</p>";
    return;
    }
echo 'Good job.';
}

当我没有写任何东西就点击提交按钮时,我得到了答案:

Empty login
Empty login

当我在其中一个或两个中写一些东西时,验证没问题。为什么?

编辑 - 缺少代码:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $login = test_input($_POST["login"]);
  $pwd = test_input($_POST["pwd"]);
if($message!= ""){
    echo $message;
    }
  else{
    echo 'OK';
    }
}

也许重构为:

function test_input($data, $field) {
    if( $field == "login" && $data == "" ){
        return "<p>Empty login.</p>";
    }
    elseif( $field == "pwd" && $data == "" ){
        return "<p>Empty password.</p>";
    }
    echo 'Good job.';
}

$message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $message .= test_input($_POST["login"], "login");
    $message .= test_input($_POST["pwd"], "pwd");
    if($message!= ""){
        echo $message;
    }
    else{
        echo 'OK';
    }
}