Php 必填字段错误检查不起作用
正如标题所说,我正在构建一个注册页面,我正在遵循一个教程并在运行时构建代码,出于某种原因,我没有打印错误,它只是在url中发布,这是我的代码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', '
<?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%的案例一样,这是一个。不需要指定一个。Sobreak代码>很好,甚至更好。-既然是你自找的,你的我知道这是离题了,但很快,有什么理由把它放在这里?这只是为了可读性。这与为什么要将块的第一行放在开头卷曲({
)后面的行上的原因大致相同而不是在同一行,或者你为什么要把第一个元素放在一个大号中,而不是放在下一行,而不是放在同一行。啊,废话,我一次又一次地检查顶部的代码,遗漏了一些愚蠢的东西,谢谢你的回复。@user2542256如果它让你感觉更好,我在看到它之前盯着它看了大约5分钟。我想nk我依靠dreamweaver来自动放置=“”就像它通常做的那样,出于某种原因,它决定不忽略显而易见的事情,我想,再次感谢。你应该尝试在没有Dreamweaver的情况下编写代码。这是更好的实践,老实说,如果你不小心的话,有时候Dreamweaver可以为你编写一些非常糟糕的代码。一个很好的旧文本编辑器,语法突出显示,比如记事本++在我看来,这将更有教育意义。
<form action="" method="post">