2013-05-07 51 views
0

我有这样的代码:奇怪的空POST输出PHP

<?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文件后,这是输出,当我离开输入空:

用户名设置 用户名是空

密码设置为 密码不为空

为什么?

+1

的name属性是什么'的print_r($ _ POST)的;'显示?编辑,只是看到:“这是我输入空的时候的输出” - >是不是它应该这样做呢?当你将它们留空时显示“字段为空”。 – RelevantUsername 2013-05-07 19:54:32

+0

print_r显示:[object HTMLInputElement] – jevniky 2013-05-07 20:52:00

回答

0

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

如果您所期望的代码不显示:

Username is set 

,因为你要离开该字段为空,你可能想知道,而值在现场设置与否,形式发送表单中每个字段的$ _POST ['field']值(除了具有disabled属性的字段)。

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

0

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

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

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; 
} 
} 

这样做是什么让一个变量了表单的输入域