Передача данных из формы в PHP-сценарий.
Передача данных из формы в PHP-сценарий.
Чтобы было более понятно как передаются данные из формы нужно сначала создать форму:
Файл сохраняем как html_form.html, можно сохранить и с расширением .php, но в данном случае в этом нет необходимости.
Теперь разберем файл form.html. Данный файл содержит 5 переменных:
1) name="username", т.е. $username
2) name="lastname", т.е. $lastname
3) name="mail", т.е. $mail
4) name="coment", т.е. $coment
5) name="submit", т.е. $submit
Значения этих переменных будут зависеть только от пользователя за исключением последней, т.е. $submit, у этой переменной уже есть значение(value="отправить"). Эта переменная используется как служебная, но на данный момент для нас это не важно, мы будем обрабатывать только первые четыре.
Для обработки первых 4 переменных нам понадобится скрипт(php-сценарий) form.php:
Все 4 переменные мы получаем из глобальной переменной(массива) $_GET. В всех глобальных переменных вот такой синтаксис:
1)для печати:
print ("$_GET[username]");
2) для других манипуляций:
$_GET['username']
Обратите внимание что для вывода на печать ключ не помещается в кавых, а в всех остальных случаях одинарные кавычки обязательны!!!
После того как PHP-сценарий получил из HTML-формы данные(переменные) их в некоторых случаях приходится использовать 5-30 раз, для того чтобы каждый раз не набирать $_GET['username'] можно создать новую переменную, а значение получить из глобальной:
$username = $_GET['username'];
С такими переменными проще работать и меньше ошибок. Немного изменим файл form.php:
Не смотря на то что в втором коде на 4 строки больше, результат обработки скрипта будет одинаков.
А теперь самостоятельно в HTML-файле измените метод отправки данных с GET(открытый способ) на POST(скрытый способ), А в файле form.php замените $_GET на $_POST.
Формы периодически могут модифицироваться, т.е. изменяться методы отправки данных с POST на GET или наоборот, при этом приходится изменять PHP-сценарий, но чтобы этого не делать все переменные можно получать массивом $_REQUEST, т.е.:
$username = $_REQUEST['username'];
Системный массив $_REQUEST содержит в себе переменное окружение не только POST и GET но и $_COOKIE, работать с кукиесами мы научимся позже.