我有这段代码:
<?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文件之后,当我将输入留空时这是输出:
用户名已设置 用户名为空
设置密码 密码不为空
为什么会这样?
答案 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;
}
}
这样做会使变量超出表单输入字段的名称属性