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

我遇到了这种问题,我真的不知道为什么,我最近注册了 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>


青春有我
浏览 144回答 3
3回答

狐的传说

我明白了,没有人注意到我有if ($err == ""),是的,我只有,if ($err = "")但重点是它总是错误的,因为我总是有一两个字段是空的,我在!那里错过了一个点,一切都会好起来的。哦,是的,我也错过了name提交输入的属性。但是我非常感谢你们!这是最终的工作代码<?php&nbsp;&nbsp; &nbsp; print_r($_POST);&nbsp; &nbsp; if(array_key_exists("submit", $_POST)){&nbsp; &nbsp; &nbsp; &nbsp; $error = "";&nbsp; &nbsp; &nbsp; &nbsp; if(!($_POST['email']) ){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $error.="You need to type in email";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if(!$_POST["password"]){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $error.="You need to type in password";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;&nbsp; &nbsp; }?><div id="error"><?php echo $error ?></div><form method="post" >&nbsp; &nbsp; <input type="text" placeholder="username" name="email">&nbsp; &nbsp; <input type="password" placeholder="password" name="password">&nbsp; &nbsp; <input type="checkbox" name="StayLoggedIn" value="1">&nbsp; &nbsp; &nbsp; &nbsp; <input type="submit" name="submit" value="Sign Up"></form>

拉丁的传说

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

慕尼黑8549860

你不需要发送“提交”键,它实际上是没用的。让它工作所需的只是删除“if”条件:if(array_key_exists("submit", $_POST)){因为如果数据存在(电子邮件和密码),您就可以抓取数据。你也可以像这样改进你的代码:$err = "no error";if(!$_POST["email"]){&nbsp; &nbsp; $err = "You need to type in email";} else if(!$_POST["password"]){&nbsp; &nbsp; $err = "You need to type in password";}&nbsp; &nbsp;最后删除不必要的“if-else”检查。希望能帮助到你
打开App,查看更多内容
随时随地看视频慕课网APP