Php 字段总是返回空
我试图创建一个面向PHP对象的表单验证脚本,但遇到了一个问题。每当我检查我的字段是否为空时,脚本总是返回消息说它们为空,即使提交时我的字段不是空的。我不明白我做错了什么。这是我的密码: HTMLPhp 字段总是返回空,php,validation,Php,Validation,我试图创建一个面向PHP对象的表单验证脚本,但遇到了一个问题。每当我检查我的字段是否为空时,脚本总是返回消息说它们为空,即使提交时我的字段不是空的。我不明白我做错了什么。这是我的密码: HTML <form action='' method='POST'> <label>Full Name</label> <input type='text' placeholder='Full Name*' name='name'> <label>Em
<form action='' method='POST'>
<label>Full Name</label>
<input type='text' placeholder='Full Name*' name='name'>
<label>Email</label>
<input type='email' placeholder='Email*' name='email'>
<label>Password</label>
<input type='password' placeholder='Password*' name='password'>
<input type='submit' value='Sign Up!' name='registerBtn'>
</form>";
全名
电子邮件
密码
";
PHP
<?php
class CreateUser
{
/*Declare variables*/
public $errors;
public function __construct(){
/*Initialize array of errors*/
$this->errors = array("empty_err"=>"");
}
/*Function that checks if fields are empty*/
public function checkEmpty($valArr){
foreach ((array)$valArr as $value=>$keys){
if (empty($valArr[$keys])){
$this->errors["empty_err"] = "All fields are required.";
}
}
}
}
$user = new CreateUser();
if (isset($_POST["registerBtn"])){
$user->checkEmpty($_POST["registerBtn"]);
}
?>
1.第一次更改 将此更改为:
$user->checkEmpty($_POST["registerBtn"]);
$user->checkEmpty($_POST);
foreach ((array)$valArr as $value=>$keys){
if (empty($valArr[$keys])){
foreach ((array)$valArr as $keys => $value){
if (empty($valArr[$keys])){
这个:
$user->checkEmpty($_POST["registerBtn"]);
$user->checkEmpty($_POST);
foreach ((array)$valArr as $value=>$keys){
if (empty($valArr[$keys])){
foreach ((array)$valArr as $keys => $value){
if (empty($valArr[$keys])){
2.第二次更改
将此更改为:
$user->checkEmpty($_POST["registerBtn"]);
$user->checkEmpty($_POST);
foreach ((array)$valArr as $value=>$keys){
if (empty($valArr[$keys])){
foreach ((array)$valArr as $keys => $value){
if (empty($valArr[$keys])){
这个:
$user->checkEmpty($_POST["registerBtn"]);
$user->checkEmpty($_POST);
foreach ((array)$valArr as $value=>$keys){
if (empty($valArr[$keys])){
foreach ((array)$valArr as $keys => $value){
if (empty($valArr[$keys])){
$\u POST[“registerBtn”]
不是数组,而是字符串。是否要在$\u POST
数组上循环?如果尚未循环,请将错误报告(E\u ALL);ini\u集('display\u errors',1)
在页面顶部。非常感谢您的回答。解决方案是可行的,但为什么我们必须切换$value和$keys?因为您在$valArr[$keys]上选中了empty
其中$keys
应该是索引
并且$value
应该是该索引上的值,所以$value始终是索引值?在您的帖子中,foreach((数组)$valArr as$value=>$keys){
,$value
是索引,$keys
是该索引上的值。因此,如果(空($valArr[$keys]){为如果(空($valArr[$values]){
@user2896120,如果我不能让您理解,请参阅