奇怪的空POST输出php

奇怪的空POST输出php,php,output,string,Php,Output,String,我有以下代码: <?php if ( isset($_POST['username']) === true){ echo 'Username is set'; if ( $_POST['username'] == "" ){ echo '<br> Username is empty'; } else { echo '<br>Username is not empty'; } } if ( isset($

我有以下代码:

<?php
if ( isset($_POST['username']) === true){
    echo 'Username is set';
    if ( $_POST['username'] == "" ){
        echo '<br> Username is empty';
    } else {
        echo '<br>Username is not empty';
    }
}
if ( isset($_POST['password']) === true ){
    echo 'Password is set';
    if ( $_POST['password'] == "" ){
        echo '<br> Password is empty';
    } else {
        echo '<br>Password is not empty';
    }
} 
?>

我有以下表格:

<input type="text" name="username" placeholder="Username" id="username" onKeyUp="javascript:check_username();">
<input type="password" name="password" placeholder="Password" id="password" onKeyUp="javascript:check_password();">

函数调用ajax检查用户名/密码,在php文件中运行后,当我将输入留空时,这是输出:

用户名已设置 用户名为空

密码已设置 密码不是空的

为什么呢???

当你说“这是输入为空时的输出”不是它应该做的吗?将字段留空时显示“字段为空”

如果您希望代码不显示:

Username is set
由于您将字段留空,您可能想知道,尽管字段中设置了值或未设置值,但表单仍会为表单中的每个字段发送$_POST['field']值(具有禁用属性的字段除外)


尝试使用
print\r($\u POST)或浏览器调试工具来显示哪些值被传递到此PHP页面。

什么是密码的值?您确定它的值实际上是空的吗

你能发布输入的代码吗?你没有发布整个表单;可能是因为您没有关闭
标记,所以表单在提交之前向值添加了一些明文

if(!empty($_POST)) {
foreach($_POST as $key => $val)
{
    ${$key} = $ val;
}

if(empty($username)) {
    echo "Username empty";
} else {
    echo $username;
}

if(empty($password)) {
    echo "Password empty";
} else {
    echo $password;
}
}

这样做的目的是从表单输入字段的name属性中生成一个变量

What is
print\r($\u POST)显示?编辑,刚刚看到:“这是当我将输入留空时的输出”->这不是它应该做的吗?将字段留空时显示“字段为空”。打印\r显示:[object HTMLInputElement]