自定义功能,仅允许提交的预期数据

问题描述 投票:0回答:1

我具有仅允许来自表单提交的预期数据的功能。我以前使用过它,但现在工作正常,但现在尝试使用它时。它抛出错误: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'] ?? '';

}
php forms function loops post
1个回答
0
投票

您不提供单个array作为参数,而是提供4个string参数。

$post_params = allowed_post_params('email', 'username', 'password', 'country');

用途:

$post_params = allowed_post_params(['email', 'username', 'password', 'country']);
© www.soinside.com 2019 - 2024. All rights reserved.