Пользовательская функция, позволяющая только ожидаемые данные в представлениях - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть функция, которая позволяет только ожидаемые данные из отправленных форм. Я использовал его раньше, и он работал нормально, но теперь, когда я пытаюсь использовать его. выдает ошибку: 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'] ?? '';

}

1 Ответ

0 голосов
/ 29 февраля 2020

Вы предоставляете 4 string аргументов для функции.

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

Это должен быть один array:

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