Предлагаю вашему вниманию серию примеров работы с формами html на php. Примеры рассчитаны на новичков в php, желающих научиться самостоятельно генерировать формы и обрабатывать введенные пользователем результаты.
Пример 1. Отображение формы и обработка полученных данных
else < formResult(); >//вывод формы function formShow() < echo ».»n»; echo ‘Введите имя:
‘.»n»; echo ‘
‘.»n»; echo ».»n»; echo ».»n»; > //обработка ввода function formResult() < echo ».»n»; echo ‘Привет, ‘.htmlentities($_POST[‘name’], ENT_QUOTES).’.
‘.»n»; echo ».»n»; echo ».»n»; >
Всё просто. Принятие решения, какую страницу выводить, отделяем от вывода формы и от обработки результата.
Глобальная переменная $_SERVER[‘REQUEST_METHOD’] содержит метод, который был использован для запроса страницы: ‘GET’ — при вводе адреса страницы в браузере, затем после отправки формы — ‘POST’.
Простая обработка форм на PHP для начинающих. Урок 1
$_SERVER[‘SCRIPT_NAME’] — содержит путь к текущему исполняемому скрипту. Это позволяет не менять код программы при её переименовании.
Функция htmlentities преобразует все символы в html-сущности, как указано в описании. Это позволяет корректно выводить в браузере введенные пользователем знаки разметки html и защищает от межсайтовых сценарных атак. Помимо экранирования одиночных кавычек (параметр ENT_QUOTES), необходимо также проверять пользовательский ввод и на соответствие введенных символов кодировке. Однако с последним будем разбираться позднее.
Можно применить для вывода html-кода формат heredoc:
function formShow() < $script = htmlentities($_SERVER[‘SCRIPT_NAME’]); echo Введите имя:
FORM; >
Мне кажется, что heredoc затрудняет чтение, однако, если вам проще такой код — используйте его.
Результат вывода формы будет примерно таким:
Введите имя:
Далее разберемся как проверять пользовательский ввод.
При написании использовал книгу PHP. Рецепты программирования
Источник: habr.com
Работа с формами в PHP
Для передачи данных от пользователя Web-страницы на сервер используются HTML-формы. Для работы с формами в PHP предусмотрен ряд специальных средств.
Предварительно определенные переменные
В PHP существует ряд предварительно определенных переменных, которые не меняются при выполнении всех приложений в конкретной среде. Их также называют переменными окружения или переменными среды. Они отражают установки среды Web-сервера Apache, а также информацию о запросе данного браузера. Есть возможность получить значения URL, строки запроса и других элементов HTTP-запроса.
Все предварительно определенные переменные содержатся в ассоциативном массиве $GLOBALS . Кроме переменных окружения этот массив содержит также глобальные переменные, определенные в программе.
PHP. Работа с формами
Пример 1
Просмотр массива $GLOBALS $value ) echo «$GLOBALS[«$key»] == $value
«; ?>
В результате на экране появится список всех глобальных переменных, включая переменные окружения. Наиболее часто используемые из них:
$_SERVER[‘HTTP_USER_AGENT’] | Название и версия клиента | Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21 |
$_SERVER[‘REMOTE_ADDR’] | IP-адрес | 37.78.162.198 |
getenv(‘HTTP_X_FORWARDED_FOR’) | Внутренний IP-адрес клиента | |
$_SERVER[‘REQUEST_METHOD’] | Метод запроса ( GET или POST ) | GET |
$_SERVER[‘QUERY_STRING’] | При запросе GET закодированные данные, передаваемые вместе с URL | |
$_SERVER[‘REQUEST_URL’] | Полный адрес клиента, включая строку запроса | |
$_SERVER[‘HTTP_REFERER’] | Адрес страницы, с которой был сделан запрос | https://htmlweb.ru/ |
$_SERVER[‘PHP_SELF’] | Путь к выполняемой программе | /index.php |
$_SERVER[‘SERVER_NAME’] | Домен | htmlweb.ru |
$_SERVER[‘REQUEST_URI’] | Путь | /php/php_form.php |
Обработка ввода пользователя
PHP-программу обработки ввода можно отделить от HTML-текста, содержащего формы ввода, а можно расположить на одной странице.
Пример 2
Пример обработки ввода
Номер карточки:
Здесь отсутствует кнопка передачи данных, т.к. форма, состоящая из одного поля, передается автоматически при нажатии клавиши .
При обработки элемента с многозначным выбором для доступа ко всем выбранным значениям нужно к имени элемента добавить пару квадратных скобок. Для выбора нескольких эллементов следует удерживать клавишу Ctrl.
Пример 3.1
Список Чай Кофе Молоко Ветчина Сыр
Источник: htmlweb.ru
Работа с формами
Одно из главнейших достоинств PHP — то, как он работает с формами HTML. Здесь основным является то, что каждый элемент формы автоматически становится доступным вашим программам на PHP. Для подробной информации об использовании форм в PHP читайте раздел Переменные из внешних источников. Вот пример формы HTML:
Пример #1 Простейшая форма HTML
Ваше имя:
Ваш возраст:
В этой форме нет ничего особенного. Это обычная форма HTML без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмет кнопку отправки, будет вызвана страница action.php . В этом файле может быть что-то вроде:
Пример #2 Выводим данные формы
Здравствуйте, .
Вам лет.
Пример вывода данной программы:
Здравствуйте, Сергей. Вам 30 лет.
Если не принимать во внимание куски кода с htmlspecialchars() и (int), принцип работы данного кода должен быть прост и понятен. htmlspecialchars() обеспечивает правильную кодировку «особых» HTML-символов так, чтобы вредоносный HTML или Javascript не был вставлен на вашу страницу.
Поле age, о котором нам известно, что оно должно быть число, мы можем просто преобразовать в integer , что автоматически избавит нас от нежелательных символов. PHP также может сделать это автоматически с помощью расширения filter. Переменные $_POST[‘name’] и $_POST[‘age’] автоматически установлены для вас средствами PHP.
Ранее мы использовали суперглобальную переменную $_SERVER , здесь же мы точно так же используем суперглобальную переменную $_POST , которая содержит все POST-данные. Заметим, что метод отправки (method) нашей формы — POST. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET . Кроме этого, можно использовать переменную $_REQUEST , если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE и FILE.
В PHP можно также работать и с XForms, хотя вы найдете работу с обычными HTML-формами довольно комфортной уже через некоторое время. Несмотря на то, что работа с XForms не для новичков, они могут показаться вам интересными. В разделе возможностей PHP у нас также есть короткое введение в обработку данных из XForms.
Источник: php.ru