php - 自定义功能,仅允许提交中的预期数据
问题描述
我有一个功能,只允许来自表单提交的预期数据。我以前使用它,它工作正常,但现在当我尝试使用它时。它抛出一个错误:Warning: Invalid argument supplied for foreach()
我尝试过使用is_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'] ?? '';
}
解决方案
您正在为string
函数提供 4 个参数。
$post_params = allowed_post_params('email', 'username', 'password', 'country');
它应该是一个单一的array
:
$post_params = allowed_post_params(['email', 'username', 'password', 'country']);