奇怪的空POST输出php

时间:2013-05-07 19:50:02

标签: 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($_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文件之后,当我将输入留空时这是输出:

用户名已设置 用户名为空

设置密码 密码不为空

为什么会这样?

3 个答案:

答案 0 :(得分:0)

当你说“当我把输入留空时这是输出”那么它应该是什么呢?当你把它们留空时显示“Field is empty”。

如果您希望代码不显示:

Username is set

因为您将字段留空,您可能想知道在字段中设置或不设置值时,表单无论如何都要为表单中的每个字段发送$ _POST ['field']值(除外具有禁用属性的那个)。

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

答案 1 :(得分:0)

密码的值是多少?你确定它的值实际上是空的吗?

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

答案 2 :(得分: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;
}
}

这样做会使变量超出表单输入字段的名称属性