Что такое хороший способ обработки данных из формы перед применением бизнес-логики в PHP? - PullRequest
3 голосов
/ 17 ноября 2009

Я думаю, что это общая проблема.

Всякий раз, когда на веб-странице есть форма, на бэк-энде появляется файл PHP, обрабатывающий данные, отправленные с формы. Вы начинаете с $_POST. Вы должны убедиться, что имена входных элементов не фальсифицированы, не увеличены или не уменьшены, и вы хотите убедиться, что никакие входные элементы не оставлены пустыми, и вам также нужно экранировать кавычки, чтобы вы может потребоваться использовать isset(), empty(), mysql_real_escape_string() или другие функции для выполнения этой рутинной работы, прежде чем применять бизнес-логику к этим данным.

Как лучше всего выполнять эту рутинную работу?

Я хочу написать меньше кода и сделать его устойчивым.

Может быть, нет лучшего способа, но, по крайней мере, есть хорошие способы сделать это. Как это сделать?

Для удобства предположим, что есть данные типа username, password, title, content, question, answer,unit_price,...

Что если я не использую PHP-фреймворк?

Ответы [ 3 ]

4 голосов
/ 17 ноября 2009

ИМХО

Компонент Zend_Form обеспечивает хороший надежный способ многократного использования для выполнения таких задач.

2 голосов
/ 17 ноября 2009

Как RageZ говорил о Zend_Form ... Если вы действительно только после части фильтрации и проверки, вам не нужно использовать (иногда ) раздутый и сложный интерфейс Zend_Form. Вы можете использовать Zend_Filter_Input, что на самом деле составляет Zend_Form без форм (часть рендеринга). Вы можете использовать те же фильтры и валидаторы, что и в Zend_Form, но в более краткой форме.

Но у каждого PHP-фреймворка должен быть свой компонент очистки ввода, поэтому замените Zend_Form / Zend_Filter_Input на соответствующий компонент фреймворка, который вы хотели бы использовать.

1 голос
/ 17 ноября 2009

Я добавлю второй ответ, так как этот не имеет ничего общего с моим первым ответом, нацеленным на Zend Framework.

Если вы не хотите использовать фреймворк и если у вас есть PHP> = 5.2.0, вы можете использовать расширение ext/filter, которое на самом деле имеет как минимум большинство важных функций из компоненты фильтрации и проверки каркаса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...