Php 自定义函数,仅允许提交中的预期数据
我有一个函数,只允许表单提交的预期数据。我以前用过它,效果很好,但现在我试着用它。它抛出一个错误:Php 自定义函数,仅允许提交中的预期数据,php,forms,function,loops,post,Php,Forms,Function,Loops,Post,我有一个函数,只允许表单提交的预期数据。我以前用过它,效果很好,但现在我试着用它。它抛出一个错误:警告:为foreach()提供的参数无效。我已尝试使用is\u array()函数,但没有修复错误。你知道为什么会这样吗 功能 function allowed_post_params($allowed_params=[]) { $allowed_array = []; foreach ($allowed_params as $param) { if (isset
警告:为foreach()提供的参数无效。
我已尝试使用is\u array()
函数,但没有修复错误。你知道为什么会这样吗
功能
function allowed_post_params($allowed_params=[]) {
$allowed_array = [];
foreach ($allowed_params as $param) {
if (isset($_POST[$param])) {
$allowed_array[$param] = $_POST[$param];
} else {
$allowed_array[$param] = NULL;
}
}
return $allowed_array;
}
在处理中使用
if (is_post_request()) {
$post_params = allowed_post_params('email', 'username', 'password', 'country');
$email = $post_params['email'] ?? '';
$username = $post_params['username'] ?? '';
$password = $post_params['password'] ?? '';
$country = $post_params['country'] ?? '';
}
您正在为函数提供4个
string
参数
$post_params = allowed_post_params('email', 'username', 'password', 'country');
它应该是单个数组
:
$post_params = allowed_post_params(['email', 'username', 'password', 'country']);
是的,现在我注意到了。我不知道我怎么会错过。非常感谢。