САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ
×

PHP5 Учебник

PHP Главная PHP Введение PHP Установка PHP Синтаксис PHP Переменные PHP Echo/Print PHP Типы данных PHP Строки PHP Константы PHP Операторы PHP Заявления if...else PHP Заявления switch PHP Цикл while PHP Циклы for, foreach PHP Функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные массивы

PHP Формы

PHP Обработка форм PHP Проверка форм PHP Поля форм PHP Проверка почты PHP Полная форма

PHP Продвинутый

PHP Мульти массивы PHP Дата и время PHP Подключение PHP Обработка файлов PHP Открыть файл PHP Создать файл PHP Загрузить файл PHP Файлы cookie PHP Проведение сессий PHP Фильтры PHP Расширенные фильтры PHP Обработка ошибок PHP Обработка исключений

MySQL

MySQL База данных MySQL Установить MySQL Создать БД MySQL Создать таблицу MySQL Вставить данные MySQL Получить ID MySQL Вставить записи MySQL Подготовленные MySQL Выбрать данные MySQL Удалить данные MySQL Обновить данные MySQL Лимит данных

PHP - XML

PHP XML Парсер PHP XML Анализатор PHP XML Вывод PHP XML Экспат PHP XML DOM

PHP - AJAX

AJAX Введение AJAX PHP AJAX База данных AJAX XML AJAX Живой Поиск AJAX RSS Считывание AJAX Опрос

PHP Примеры

PHP Примеры

PHP5 Обработка форм



РНР суперглобальных массивах $_GET и $_POST используются для сбора данных.


PHP Простая форма HTML

В примере ниже показывается простая форма HTML с двумя полями ввода и кнопкой отправки:

Пример

<html>
<body>

<form action="welcome.php" method="post">
Имя: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Смотреть код »

Когда пользователь заполняет форму и нажимает кнопку "Отправить", данные формы отправляются для обработки в PHP файл с именем "welcome.php". Данные формы отправляются с метод HTTP POST.

Чтобы отобразить представленные данные, можно вывести все переменные с помощью echo. Файл "welcome.php" выглядит так:

<html>
<body>

Привет: <?php echo $_POST["name"]; ?><br>
E-mail: <?php echo $_POST["email"]; ?>

</body>
</html>

Выход может быть что-то вроде этого:

Привет: Андрей
E-mail: and-shhipunov@mail.ru

Тот же результат, также может быть достигнут с помощью метода HTTP GET:

Пример

<html>
<body>

<form action="welcome_get.php" method="get">
Имя: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Смотреть код »

и файл "welcome_get.php" выглядит так:

<html>
<body>

Привет: <?php echo $_GET["name"]; ?><br>
E-mail: <?php echo $_GET["email"]; ?>

</body>
</html>

Приведенный выше код довольно прост. Однако самое главное отсутствует. Вам потребуется проверка данных формы для защиты скрипта от вредоносного кода.

Подумайте о безопасности при обработке PHP форм!

Эта страница не содержит никакой проверки формы, она просто показывает, как можно отправить и извлечь данные формы.

Тем не менее, на следующих страницах будет показано, как обработать формы PHP с учетом безопасности! Правильная проверка данных формы важна чтобы защитить форму от хакеров и спамеров!


GET vs. POST

В GET и POST создаем массив например, array( key => value, key2 => value2, key3 => value3, ...). Массив содержит пару Ключь/Значение, где key - это имена элементов управления формы, а value - входные данные от пользователя.

GET и POST рассматриваются как $_GET и $_POST. Эти суперглобальные переменные, означают, что они всегда доступны, независимо от объема, к ним можно получить доступ из любой функции, класса или файла, без необходимости делать что-то особенное.

$_GET массив переменных, передается скрипту через параметры URL.

$_POST массив переменных, передается скрипту через метод HTTP POST.


Когда использовать GET?

Информация, отправляемая из формы методом GET видна каждому (все имена и значения переменных отображаются в URL). GET также имеет ограничения по объему информацию для отправки. Ограничение составляет около 2000 символов. Однако, поскольку переменные отображаются в URL-адресе, можно добавить страницу в закладки. Что может пригадится в некоторых случаях.

GET можно использоваться для отправки конфиденциальных данных.

Внимание: GET никогда не следует использовать для отправки паролей или другой конфиденциальной информации!


Когда использовать POST?

Информация, отправленная из формы методом POST невидна для других (все имена/значения являются встроенные в тело HTTP запроса) и не имеет ограничений о количестве информации для отправки.

Кроме того POST поддерживает расширенные функции, такие как поддержка нескольких частей двоичных вводов при загрузке файлов на сервер.

Однако, поскольку переменные не отображаются в URL адрес, невозможно добавить страницу в закладки.

Разработчики предпочитают POST для отправки данных формы.

Далее, посмотрим, как можно обрабатывать PHP формы безопасным способом!