Я всегда использовал больше phpish $this->_request->getPost('this')
и $this->_request->getQuery('that')
(это не так логично с getquery вместо getGet).
Что лучше из этих двух? (или если есть другой лучший способ)
Просто краткое объяснение выбора getQuery()
. Выбор формулировки зависит от типа данных, а не от того, как они туда попали. GET и POST - это просто методы запроса, несущие всевозможную информацию, включая, в случае запроса POST, раздел, известный как «данные поста». Запрос GET не имеет такого блока, любые переменные данные, которые он несет, являются частью строки запроса URL (часть после?).
Итак, в то время как getPost()
получает данные из раздела данных post запроса POST, getQuery()
получает данные из строки запроса либо запроса GET, либо POST (а также других методов HTTP-запроса).
(Обратите внимание, что запросы GET не должны использоваться для чего-либо, что может привести к побочному эффекту, например, к изменению строки БД)
Итак, в ответ на ваш первый вопрос, используйте методы getPost()
и getQuery()
, таким образом, вы можете быть уверены, где находится источник данных (если вам все равно, getParams()
также работает, но может включать дополнительные данные).
Какова лучшая практика для проверки ввода php с помощью этих методов?
Лучшее место для проверки ввода - это то, где вы первый используете его. То есть, когда вы вытягиваете его из getParams()
, getPost()
или getQuery()
. Таким образом, ваши данные всегда верны там, где они вам нужны, и если вы их выдаете, вы знаете, что это безопасно. Имейте в виду, что если вы передадите его другому контроллеру (или действию контроллера), вам, вероятно, следует проверить его еще раз, чтобы быть в безопасности. То, как вы это сделаете, зависит от вашего приложения, но все еще требует проверки.