0

我有这个代码:

<?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 文件运行后,这是我将输入留空时的输出:

用户名已设置 用户名为空

密码已设置 密码不为空

这是为什么??

4

3 回答 3

0

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

如果您希望代码不显示:

Username is set

因为您将字段留空,您可能想知道,尽管在字段中设置或未设置值,但表单正在为表单中的每个字段发送 $_POST['field'] 值(除了带有禁用属性)。

尝试使用print_r($_POST);您的浏览器调试工具来显示哪些值被传递到此 PHP 页面。

于 2013-05-07T20:00:21.623 回答
0

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

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

于 2013-05-07T20:02:26.733 回答
0
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;
}
}

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

于 2013-05-07T20:02:49.633 回答