调用函数来验证 post 数组 php
Calling function to validate post array php
我正在尝试获取由 php 验证的 post 数组,方案 2 有效,方案 1 无效 - 在循环内调用函数时,请帮助
场景一
// 尝试在循环中调用函数
<form action="new_signup_form_upload.php" method="POST">
Email 1 <input type = "text" name = "email[newsignup_email1]">
Email 2 <input type = "text" name = "email[newsignup_email2]">
<input type="submit" id= "submit" name= "submit">
function validate_email(){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
foreach($_POST[email] as $key => $value){
validate_email();
}
场景二
// 这里的区别是我在循环内编写函数
<form action="new_signup_form_upload.php" method="POST">
Email 1 <input type = "text" name = "email[newsignup_email1]">
Email 2 <input type = "text" name = "email[newsignup_email2]">
<input type="submit" id= "submit" name= "submit">
foreach($_POST[email] as $key => $value){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
函数 validate_email 无法访问外部变量(真正的全局变量除外)。除了对代码的许多其他反对意见之外……您应该在 foreach 循环
中传递 $value
function validate_email($value){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
foreach($_POST[email] as $key => $value){
validate_email($value);
}
我正在尝试获取由 php 验证的 post 数组,方案 2 有效,方案 1 无效 - 在循环内调用函数时,请帮助
场景一 // 尝试在循环中调用函数
<form action="new_signup_form_upload.php" method="POST">
Email 1 <input type = "text" name = "email[newsignup_email1]">
Email 2 <input type = "text" name = "email[newsignup_email2]">
<input type="submit" id= "submit" name= "submit">
function validate_email(){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
foreach($_POST[email] as $key => $value){
validate_email();
}
场景二 // 这里的区别是我在循环内编写函数
<form action="new_signup_form_upload.php" method="POST">
Email 1 <input type = "text" name = "email[newsignup_email1]">
Email 2 <input type = "text" name = "email[newsignup_email2]">
<input type="submit" id= "submit" name= "submit">
foreach($_POST[email] as $key => $value){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
函数 validate_email 无法访问外部变量(真正的全局变量除外)。除了对代码的许多其他反对意见之外……您应该在 foreach 循环
中传递$value
function validate_email($value){
if ($value == "") {
echo $nameErr = '<div id = "error_message_div">Name is required</div>';
return false;
}
else{
if(!filter_var($value, FILTER_VALIDATE_EMAIL)) {
echo $emailErr = '<div id = "error_message_div">Invalid email format</div>';
return false;
}
}
}
foreach($_POST[email] as $key => $value){
validate_email($value);
}