好的,所以我正在上传图片上传网站......现在我正在为网站注册工作。它几乎完全用 PHP 编写。我遇到的问题是在辅助if语句的else语句中(以if (empty($register_email)
开头的那个)...有一个问题,我似乎无法找到解决方案。
以下是它的作用:
$errors
阵列如果存在任何这些错误,则应该通过脚本底部的foreach
语句显示它们。但是,我的问题是......它没有显示错误。实际上......除了上面的标题外,它会使屏幕留空。
<?php
if (isset($_POST['register_email'], $_POST['register_name'], $_POST['register_password'])) {
$register_email = $_POST['register_email'];
$register_name = $_POST['register_name'];
$register_password = $_POST['register_password'];
$errors = array();
if (empty($register_email) || empty($register_name) || empty($register_password)) { // **||** means "or"
$errors[] = 'All fields are required';
} else {
if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) {
$errors[] = 'Email address not valid';
}
if (strlen($register_email) > 255 || strlen($register_name) > 35 || strlen($register_password) > 35) {
$errors[] = 'One or more fields contains too many characters';
}
if (user_exits($register_email)) {
$errors[] = 'That email has already been registered';
}
}
if (!empty($errors)) { //If errors do exist
foreach($errors as $error) {
echo $error, '<br />';
}
} else {
//register our user
}
}
?>
现在有一件事我已经过测试,以确保它不是函数的问题(关于if (empty($register_email)...)
是我已经完成了这个
if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) {
$errors[] = 'Email address not valid';
echo 'Email address is not valid';
} else {
echo 'Email address is valid';
它确实正常工作,它回应了正确的结果。但是,当我尝试通过foreach语句(我必须这样做来显示多个错误)时,它不起作用。
P.S。我已经去了3个不同的网站进行语法检查,一切都检查好了。 }
答案 0 :(得分:1)
尝试
if(count($errors) > 0)
我不知道empty()是否适用于所有情况。