Методы get и post

И так, у нас уже в принципе всё готово для того чтобы создать обработчик, а так же чтобы формы отправки данных по настоящему начали работать, но не помешало бы изучить методы отправки данных get и post.
На данный момент пока между файлами которые мы создавали в прошлых уроках, а это: form.html и formdata.php нет ничего общего, потому как в обработчике написан обычный простой проверочный скриптик, который выводит цифру 7.

Поэтому давайте удалим нафик этот ненужный php код из нашего обработчика formdata.php и начнём писать уже более серьёзные вещи. Но для начала давайте сделаем так, чтобы данные из форм начали передаваться в обработчик и далее выводились бы на экран, перед этим удалите из хтмл кода форм атрибут readonly, если таковой имеется, а атрибут name у всех форм должен быть разным!

В том уроке когда мы только начинали создавать код формы, мы в атрибуте method, прописали метод ПОСТ, но в данный момент, исправьте этот метод на ГЕТ, потому как именно метод get, поможет вам более понятней усвоить то, как вообще передаются данные из форм в обработчик, а также вы сразу же поймёте отличие между get и post, когда мы дойдём до метода ПОСТ. Ну в-общем вы прописали в теге form: method="GET" и сохранили файл form.html теперь идёи дальше.

Открывайте этот файл с формами в браузере,  заполняйте его тестовыми данными, они могут быть любыми, нам главное научиться правильно отправлять их в обработчик. После того как все формы будут заполнены, нажимайте на кнопку отправить, а затем после этого обратите внимание на адресную строку в браузере:




Первое что мы видим в этой строке, это как обычно обращение к файлу: testhtml/formdata.php, но посмотрите что идет далее после этого, идёт знак вопроса,  далее длинная строка из различных символов, если вы приглядитесь, то увидите там те значение которые мы прописывали в атрибутах name у тегов форм, а в этих значениях после знаков равно как раз таки те данные которые мы вводили. 

Короче говоря браузер сформировал пары из имени поля формы и его значения и передал их обработчику через адресную строку браузера, это и есть метод get, который еще называется открытым методом передачи данных. Теперь давайте думать как обработчику получить доступ к этим данным?, для того чтобы он хотя бы смог бы их отобразить на экране.

На самом деле здесь всё просто, ибо все данные которые передаются обработчику, попадают в так называемый глобальный массив get, и их мы можем выводить php оператором echo путём прописывания этого глобального массива: $_GET, а далее в квадратных скобках и одинарных кавычках прописываем имя того поля которое нас интересует, это делается так:

<?php
echo $_GET['name'];
echo $_GET['password'];
echo $_GET['site'];
echo $_GET['fiz'];
echo $_GET['buh'];
echo $_GET['film'];
echo $_GET['piv'];
echo $_GET['vopr'];
?>

Если мы теперь отправим данные из форм, то увидим на экране, прописанные в одну строчку все данные которые были в формах:


Может случится так, что вместо русских символов, будут выводится каракули, тогда исправляйте кодировку у файла и преобразовывайте его в UTF-8 без BOM.

Таким вот образом мы уже научились выводить данные на экран, которые были переданы в обработчик при помощи метода get, но не помешало бы теперь таким же образом посмотреть как работает и метод post. 
Для этого в теге form меняем значение в атрибуте method на ПОСТ:

<form action="formdata.php" method="POST" name="form1">

В самом же обработчике, нужно теперь прописать почти такой же код что и был, только заместо ГЕТ надо прописать POST.

<?php
echo $_POST['name'];
echo $_POST['password'];
echo $_POST['site'];
echo $_POST['fiz'];
echo $_POST['buh'];
echo $_POST['film'];
echo $_POST['piv'];
echo $_POST['vopr'];
?>

Этот метод уже отличается тем что данные передаются скрытым образом, в строке браузера их уже не видно.

Вот и всё, мы изучили все два метода передачи данных , научились даже эти данные выводить на экран, дальше уже будет проще, нам лишь останется прописать специальную php функцию, которая будет отправлять полученные данные на тот емайл адрес который мы ей укажем, поэтому подписывайтесь на обновление блога, чтоб не пропустить всё самое интересное!.

Комментариев нет:

Отправить комментарий