PHP / 9. Формы

Гениальность PHP – в той простоте, с которой он позволяет интегрировать в программу переменные форм. Это делает веб-программирование приятным и простым – от вывода формы и ее обработки до вывода результатов. В HTTP нет встроенного механизма, который позволял бы сохранять информацию при переходе от одной страницы к другой. Причина этого в том, что HTTP не сохраняет свое состояние между запросами. Рецепты 9.1, 9.3, 9.4 и 9.5 показывают, как обойти фундаментальную проблему определения, какой пользователь посылает запрос на веб-сервер. Обработка информации, получаемой от пользователя, – это еще одна основная тема этой главы. Вы никогда не должны доверять данным, доставленным броузером, поэтому обязательной является проверка достоверности всех полей, даже скрытых элементов формы. Существует много способов проверки корректности данных – от проверки информации на соответствие определенному критерию.
Статьи раздела '9. Формы':
Защита от многократной отправки одной и той же формы
Задача Необходимо помешать пользователям отправлять одну и ту же форму несколько раз. Решение Сгенерируйте уникальный идентификатор и сохраните эту метку в скрытом поле формы. Перед обработкой формы проверьте, не была ли эта ...
Использование элементов формы с несколькими вариантами значений
Задача Есть элемент с несколькими значениями, такой как checkbox или select, но PHP видит только одно значение. Решение Вставьте квадратные скобки ([]) после имени переменной: The Bronx Brooklyn Manhattan Queens S...
Кэширование запросов и результатов
Задача Требуется исключить повторный запуск потенциально ресурсоемких запросов в базу данных, если их результаты не изменялись. Решение Используйте пакет PEAR Cache_DB. Он предоставляет в качестве оболочки уровня абстракции б...
Обработка внешних переменных с точками в именах
Задача Необходимо обработать переменную с точкой в имени, но после того как форма представлена, не удается найти эту переменную. Решение Замените точку в имени переменной на символ подчеркивания. Например, если в форме находи...
Обработка загруженных файлов
Задача Необходимо обработать файл, загруженный пользователем. Решение Используйте массив $_FILES: // из if (is_uploaded_file($_FILES['event']['tmp_name'])) { readfile($_FILES['event']['tmp_name']); // выводим файл на экра...
Обработка информации, полученной из формы
Задача Необходимо использовать одну и ту же страницу HTML для вывода формы и обработки введенных в ней данных. Другими словами, требуется избежать размножения страниц, которые работают на отдельных этапах транзакции. Решение ...
Организация безопасности обработки форм в PHP
Задача Необходимо обеспечить безопасную обработку входных переменных формы и не позволить какому-нибудь злоумышленнику изменить переменные в вашей программе. Решение Заблокируйте параметр конфигурации register_globals и обращ...
Повторный вывод форм с информацией и сообщениями об ошибках
Задача Когда возникает проблема с данными, введенными в форму, необходимо напечатать сообщения об ошибках рядом с проблемными полями, вместо генерации сообщения об ошибке в начале формы. Также требуется сохранить значения, которы...
Пользовательские данные и escape-последовательности
Задача Необходимо скрытно отображать на HTML-странице информацию, вводимую пользователем. Решение Для HTML-документа с внедренными ссылками и другими тегами, который нужно отображать как простой текст, используйте функцию htm...
Проверка корректности введенных в форму данных
Задача Необходимо гарантировать, что данные, введенные в форму, удовлетворяют определенному критерию. Решение Создайте функцию, которая принимает строку для проверки и возвращает true, если строка прошла проверку, и false, ес...
Программа: Хранение сообщений форума, разбитых на темы
Сохранение и извлечение сообщений, относящихся к различным темам (разделенных на потоки), требует особой осторожности при отображении тем в определенном порядке. Определение потомка каждого сообщения и построение дерева отношений ...
Работа с многостраничными формами
Задача Необходимо использовать форму, которая показывает более одной страницы и сохраняет данные при переходе от одной страницы к следующей. Решение Используйте сеансы: session_start(); $_SESSION['username'] = $_GET['userna...
Создание выпадающих меню на основе текущей даты
Задача Необходимо создать ряд выпадающих меню, которые автоматически привязываются текущей дате. Решение Для определения текущего времени во временной зоне веб-сервера вызовите функцию date() и выполните цикл по дням с помощь...

Страницы: 1