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

时间:2019-09-02 20:13:13

标签: php forms

我遇到这种问题,我真的不知道为什么,最近我注册了php,但是即使我在这里看不到任何原因,为什么它也不起作用。

我在计算机上使用XAMPP apache,php,我制作了几个简单的表单验证器,但是这个验证器不起作用,在这里我很拼命。下面的所有代码都在一个index.php文件中,该文件是通过浏览器中的localhost链接打开的。当我打开它时,代码是这样的:

  

数组()没有错误

然后形成。一旦单击提交而不将任何数据填写到表单中,它就会刷新,并且显示如下:

  

数组([email] => [password] =>)没有错误

请帮帮我。预先感谢。

<?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 个答案:

答案 0 :(得分:-1)

您不需要发送“提交”密钥,实际上它是没有用的。 您需要做的就是删除“ 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”检查。
希望对您有帮助

答案 1 :(得分:-1)

知道了,没有人注意到我有if ($err == ""),是的,我只有if ($err = ""),但问题是它总是错误的,因为我总是有一个或两个字段为空,所以我错过了{{ 1}}指向那里,一切都会好起来的。哦,是的,我也错过了!属性和提交输入。但是我非常感激你们!

这是最终的工作代码

name

答案 2 :(得分:-1)

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