Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的表单验证程序工作不正常_Php_Forms - Fatal编程技术网

Php 为什么我的表单验证程序工作不正常

Php 为什么我的表单验证程序工作不正常,php,forms,Php,Forms,我有这样的问题,我真的不知道为什么,我最近加入了php,但即使我在这里没有看到任何安慰,为什么它不工作 我在我的计算机上使用XAMPP apache和php,我已经制作了一些简单的表单验证程序,但这一个不起作用,我有点绝望。下面的所有代码都在一个index.php文件中,我正在通过浏览器中的localhost链接打开该文件。当我打开它时,代码如下: 数组()没有错误 然后形成。单击“提交”而不在表单中填写任何数据后,它将刷新,如下所示: 数组([电子邮件]=>[密码]=>)无错误 请帮帮我。提前

我有这样的问题,我真的不知道为什么,我最近加入了php,但即使我在这里没有看到任何安慰,为什么它不工作

我在我的计算机上使用XAMPP apache和php,我已经制作了一些简单的表单验证程序,但这一个不起作用,我有点绝望。下面的所有代码都在一个
index.php
文件中,我正在通过浏览器中的localhost链接打开该文件。当我打开它时,代码如下:

数组()没有错误

然后形成。单击“提交”而不在表单中填写任何数据后,它将刷新,如下所示:

数组([电子邮件]=>[密码]=>)无错误

请帮帮我。提前谢谢

<?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>

您不需要发送“提交”键,它实际上是无用的。 要使其正常工作,只需删除“如果”条件:

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”检查

希望它有帮助

我明白了,没有人注意到我有
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>


如果(!isset($\u POST[“email”]){$error.=“您需要键入电子邮件”}

您希望看到什么?另外,您知道
=
=
之间的区别吗?提交按钮不会发送值,因为它缺少
名称
属性。除非“提交”恰好是“提交”按钮的名称,否则您将选中“提交”按钮的名称而不是“提交”。