Список преимуществ PHP дополняет способ обработки HTML-форм. Основа заключается в том, что PHP-скрипт автоматически получает доступ к каждому элементу формы. Подробнее о работе с формами в PHP рассказывает раздел « Переменные из внешних источников». Вот пример HTML-формы:
Пример #1 Простейшая HTML-форма
<form action="action.php" method="post"> <label for="name">Имя:</label> <input name="name" id="name" type="text"> <label for="age">Возраст:</label> <input name="age" id="age" type="number"> <button type="submit">Отправить</button> </form>
В этой форме нет ничего особенного. Это обычная HTML-форма без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмёт кнопку отправки, PHP вызовет страницу action.php. В файле пишут что-то вроде этого:
Пример #2 Выводим данные формы
Привет, <?php echo htmlspecialchars($_POST['name']); ?>.
Тебе <?php echo (int) $_POST['age']; ?> лет.
Пример вывода программы:
Привет, Сергей. Тебе 30 лет.
Кроме частей, в которых вызывается функция htmlspecialchars()
и приводится тип (int)
, понятно, что делает код.
Функция htmlspecialchars() гарантирует, что специальные HTML-символы
правильно закодировались, поэтому люди не смогут внедрить HTML-теги или Javascript-код
на страницу. Поскольку известно, что поле age — число, можно просто
преобразовать значение в целое число (int),
что автоматически избавит нас от случайных символов. PHP также может сделать это
автоматически через модуль filter. PHP автоматически
устанавливает переменные в элементах $_POST['name'] и $_POST['age'].
Раньше мы использовали суперглобальную переменную $_SERVER, а здесь мы точно так же
используем суперглобальную переменную $_POST, которая содержит
POST-данные. Обратите внимание, что для атрибута method
в форме установили значение POST. Если бы указали метод GET,
информацию формы содержала бы суперглобальная переменная $_GET.
В коде также обращаются к суперглобальной переменной $_REQUEST,
если источник данных запроса не имеет значения. Эта переменная содержит объединенную информацию
о GET-, POST- и COOKIE-данных.