为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的表单验证器工作不正常

为什么我的表单验证器工作不正常

PHP
青春有我 2021-12-24 09:36:01
我遇到了这种问题,我真的不知道为什么,我最近注册了 php,但即使我在这里看不到任何原因,为什么它不起作用。我在我的计算机上使用 XAMPP apache、php,我制作了几个简单的表单验证器,但是这个不起作用,我在这里有点绝望。下面的所有代码都在index.php我通过浏览器中的 localhost 链接打开的一个文件中。当我打开它时,代码是这样的:数组 ( ) 没有错误然后形成。一旦我点击提交而不将任何数据填写到表单中,它就会刷新,这就是显示的内容:数组 ( [email] => [密码] => ) 没有错误请帮帮我。提前致谢。<?php     print_r($_POST);    if(array_key_exists("submit", $_POST)){        $err = "";        if(!$_POST["email"]){            $err = "You need to type in email";        } else if(!$_POST["password"]){            $err = "You need to type in password";        }       }    if($err = ""){        echo $err."tak";    }else{        echo "no error";    }?><div id="error"><? php echo $err ?></div><form method="post" >    <input type="text" placeholder="username" name="email">    <input type="password" placeholder="password" name="password">    <input type="checkbox" name="StayLoggedIn" value="1">        <input type="submit" value="Sign Up"></form>
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

我明白了,没有人注意到我有if ($err == ""),是的,我只有,if ($err = "")但重点是它总是错误的,因为我总是有一两个字段是空的,我在!那里错过了一个点,一切都会好起来的。哦,是的,我也错过了name提交输入的属性。但是我非常感谢你们!


这是最终的工作代码


<?php 

    print_r($_POST);

    if(array_key_exists("submit", $_POST)){


        $error = "";


        if(!($_POST['email']) ){

            $error.="You need to type in email";

        } 


        if(!$_POST["password"]){

            $error.="You need to type in password";

        }   



    }


?>

<div id="error"><?php echo $error ?></div>

<form method="post" >


    <input type="text" placeholder="username" name="email">


    <input type="password" placeholder="password" name="password">


    <input type="checkbox" name="StayLoggedIn" value="1">

        <input type="submit" name="submit" value="Sign Up">

</form>


查看完整回答
反对 回复 2021-12-24
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

是不是更好if(!isset($_POST["email"])){ $error.="You need to type in email"; }


查看完整回答
反对 回复 2021-12-24
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

你不需要发送“提交”键,它实际上是没用的。让它工作所需的只是删除“if”条件:


if(array_key_exists("submit", $_POST)){

因为如果数据存在(电子邮件和密码),您就可以抓取数据。你也可以像这样改进你的代码:


$err = "no error";


if(!$_POST["email"]){

    $err = "You need to type in email";

} else if(!$_POST["password"]){

    $err = "You need to type in password";

}   

最后删除不必要的“if-else”检查。

希望能帮助到你


查看完整回答
反对 回复 2021-12-24
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信