Проверка формы не работает с методом GET - PullRequest
2 голосов
/ 28 апреля 2020

Я пытаюсь опубликовать свою форму по method="GET" вместо POST.

Кодекситера form_validation->run() не работает.

Не возвращается form_error в просмотр страницы.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2020

Если вам нужно использовать $_GET, вы можете установить данные проверки перед правилами проверки:

$this->form_validation->set_data($_GET);

См .: Проверка массива (кроме $ _POST)

1 голос
/ 28 апреля 2020

Концепция form_validation основана на использовании POST, так как функция проверки формы form_validation->run() создает свой массив проверки с POST.

см. Codeigniter public function run() в строке 417 из system/libraries/Form_validation.php:

$validation_array = empty($this->validation_data)
          ? $_POST
          : $this->validation_data;

но, как указано в ответе @Hasta Dhana, вы можете использовать $ _GET или любой другой массив, например:

$this->form_validation->set_data($_GET);

, если хотите проверить массив, который не происходит из данных $ _POST . Этот массив занимает место $this->validation_data в предложении if

...