Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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_Mysql_Forms_Error Handling - Fatal编程技术网

Php 必填字段错误检查不起作用

Php 必填字段错误检查不起作用,php,mysql,forms,error-handling,Php,Mysql,Forms,Error Handling,正如标题所说,我正在构建一个注册页面,我正在遵循一个教程并在运行时构建代码,出于某种原因,我没有打印错误,它只是在url中发布,这是我的代码 <?php include ("core/init.php"); ?> <?php include ("includes/overall/header.php"); if (empty($_POST) === false) { $required_fields = array('username', 'password', '

正如标题所说,我正在构建一个注册页面,我正在遵循一个教程并在运行时构建代码,出于某种原因,我没有打印错误,它只是在url中发布,这是我的代码

    <?php include ("core/init.php"); ?>
<?php include ("includes/overall/header.php"); 

if (empty($_POST) === false) {
$required_fields = array('username', 'password', 'password_again', 'email');
foreach($_POST as $key=>$value) {
    if (empty($value) && in_array($key, $required_fields) === true) {
        $errors[] = 'Fields marked with an * are required';
        break 1;
    }

}


}
print_r($errors);
?>
<h1>Register</h1>
<form action="" method"post">
<ul>
    <li>
        Username*:<br>
        <input type="text" name="username">
    </li>
    <li>
        Password*:<br>
        <input type="password" name="password">
    </li>
    <li>
        Password Again*:<br>
        <input type="password" name="password_again">
    </li>
    <li>
        E-mail*:<br>
        <input type="text" name="email">
    </li>
    <li>
        <input type="submit" value="Register">
    </li>
</ul>

</form>
<?php include ("includes/overall/footer.php") ; ?>

登记
  • 用户名*:
  • 密码*:
  • 再次输入密码*:
  • 电子邮件*:

应该是

<form action="" method="post">


您的表单默认为
GET
,因为它没有正确表示方法,因此$\u POST为空,因此您的foreach没有任何要检查的内容

尝试更改
$errors[]='标记为*的字段是必需的'
对于
$errors='标记为*的字段是必需的'--PS:“===true”是不必要的。只是让你的代码有点混乱。这样做的工作,感觉更清楚
if(空($value)和&in_数组($key,$required_字段))
--PPS:我知道你可能只是在学习,但只是以防万一:避免像pest一样的

;在这里,使用
并将其设置为
显示:块使用CSS。谢谢你的提示,是的,我正在通过教程学习,所以很高兴听取任何人愿意分享的建议。哦,当我在这里的时候。
中断后的“1”无效。一个数字参数用于说明要退出多少嵌套循环。但在这里,就像99.9%的案例一样,这是一个。不需要指定一个。So
break很好,甚至更好。-既然是你自找的,你的我知道这是离题了,但很快,有什么理由把它放在这里?这只是为了可读性。这与为什么要将块的第一行放在开头卷曲(
{
)后面的行上的原因大致相同而不是在同一行,或者你为什么要把第一个元素放在一个大号中,而不是放在下一行,而不是放在同一行。啊,废话,我一次又一次地检查顶部的代码,遗漏了一些愚蠢的东西,谢谢你的回复。@user2542256如果它让你感觉更好,我在看到它之前盯着它看了大约5分钟。我想nk我依靠dreamweaver来自动放置=“”就像它通常做的那样,出于某种原因,它决定不忽略显而易见的事情,我想,再次感谢。你应该尝试在没有Dreamweaver的情况下编写代码。这是更好的实践,老实说,如果你不小心的话,有时候Dreamweaver可以为你编写一些非常糟糕的代码。一个很好的旧文本编辑器,语法突出显示,比如记事本++在我看来,这将更有教育意义。
<form action="" method="post">