Придай форму! Никита Кислицин Хакер, номер #074, стр. 074-116-1 (nikitoz@real.xakep.ru) Быстрое создание HTML-форм при помощи Pear::QuickForm Любой web-программист, что бы он ни писал, рано или поздно сталкивается с проблемой получения данных от пользователей. На первый взгляд может показаться, что никакой проблемы здесь и в помине нет: сделал HTML-форму, и все. Однако же это не так. Представь, что ты делаешь сложную систему и тебе надо генерировать кучу форм с переменным количеством полей. Как здесь быть? Не выписывать же каждый раз миллион HTML-тэгов и регулярных выражений для проверки параметров! Нужен какой-то универсальный и удобный инструмент. И он есть! В своих статьях я постоянно напоминаю тебе, что при обработке информации, получаемой от пользователей, нужно быть предельно внимательным. В серьезности этих слов легко убедиться, почитав статьи во «Взломе»: пожалуй, каждая вторая описывает путь для вскрытия системы, где пользовательские данные не обрабатываются должным образом. Да, это целая проблема, особенно когда количество проверяемых полей переваливает за пару сотен, как это бывает в серьезных проектах. Думаю, тебе прекрасно понятно, что встраивать проверку вводимых пользователем данных в сам движок, который обрабатывает эту информацию, нецелесообразно. Мы ведь стараемся создавать модульные системы, которые можно будет легко расширять, верно? А такое нагромождение кода не пойдет на пользу и вряд ли улучшит структуру программы. Определенно, всю работу с пользователем лучше выделить в отдельный класс, который бы создавал по определенному шаблону HTML-формы, проверял введенные данные и передавал их дальше, в модуль обработки информации. В общем-то, написать такой класс не так уж и сложно. Я даже его некоторое время назад создавал, но потом познакомился с PEAR, и желание тратить время, выписывая в сотый раз то, что уже написали, отпало. Полезная груша Я уже рассказывал тебе о том, что такое PEAR, в предыдущих статьях. Если же ты упустил это из виду, я повторю вкратце. PEAR - это PHP Extension and Application Repository, коллекция приложений и модулей PHP, структурированная библиотека разнообразных систем, поставляемых открытыми кодами. Благодаря этой системе стало довольно удобно релизить какие-то собственные разработки и распространять свой код среди единомышленников. Для потребителей здесь есть огромный плюс: к поставляемому коду предъявляются жесткие требования, так что можно быть почти уверенным в том, что внутри нет никакого палевного троянца и код делает только то, что написано в документации. Кроме того, число ошибок в релизах PEAR-модулей невелико. Если ты вдруг почувствуешь в себе силы и захочешь создавать расширения для PEAR, тебе будет полезно почитать о предъявляемых к коду требованиях, сделать это можно здесь: http://pear.php.net/manual/en/standards.php. Что же касается темы нашей статьи, то для работы нам потребуются два расширения: HTML_Common и HTML_QuickForm. Установить их легко: $ pear install HTML_Common $ pear install HTML_QuickForm Утилита PEAR скачает полезный релиз из инета и выведет тебе нечто вроде «Install ok: HTML_QuickForm 3.2.4pl1». Это означает, что установка прошла успешно и можно уже начинать работу. Я не буду особенно тебя грузить, описывая возможности системы, мы все пощупаем на практике. |