Використання HTML-форм для передачі даних на сервер

Для методу GET

При відправці даних форми за допомогою методу GET вміст форми додається до URL після знаку питання у вигляді пар ім’я=значення, об'єднаних за допомогою амперсанта &:

action?name1=value1&name2=value2&name3=value3

Тут action – це URL-адреса програми, яка повинна обробляти форму (це або програма, задана в атрибуті action тега form, або сама поточна програма, якщо цей атрибут опущений). Імена name1, name2, name3 відповідають іменам елементів форми, а value1, value2, value3 – значенням цих елементів. Всі спеціальні символи, включаючи = і &, у іменах або значеннях цих параметрів будуть опущені. Тому не варто використовувати в назвах або значеннях елементів форми ці символи і символи кирилиці в ідентифікаторах.

Якщо в полі для введення ввести який-небудь службовий символ, то він буде переданий в його шістнадцятковому коді, наприклад, символ $ заміниться на %24. Так само передаються і російські букви.

Для полів введення тексту і пароля (це елементи input з атрибутом type=text і type=password), значенням буде те, що введе користувач. Якщо користувач нічого не вводить в таке поле, то в рядку запиту буде присутній елемент name=, де name відповідає імені цього елементу форми.

Для кнопок типа checkbox і radio button значення value визначається атрибутом VALUE у тому випадку, коли кнопка відмічена. Не відмічені кнопки при складанні рядка запиту ігноруються цілком. Декілька кнопок типа checkbox можуть мати один атрибут NAME (і різні VALUE), якщо це необхідно. Кнопки типа radio button призначені для одного зі всіх запропонованих варіантів і тому повинні мати однаковий атрибут NAME і різні атрибути VALUE.

В принципі створювати HTML-форму для передачі даних методом GET не обов'язково. Можна просто додати в рядок URL потрібні змінні і їх значення.

http://www.ru/test.php?id=10&user=pit

У зв'язку з цим в передачі даних методом GET є один істотний недолік – будь-хто може підроблювати значення параметрів. Тому не радимо використовувати цей метод для доступу до захищеним паролем сторінкам, для передачі інформації, що впливає на безпеку роботи програми або сервера. Крім того, не варто застосовувати метод GET для передачі інформації, яку не дозволено змінювати користувачеві.

Не дивлячись на всі ці недоліки, використовувати метод GET досить зручний при відладці скриптів (тоді можна бачити значення і імена передаваних змінних) і для передачі параметрів, що не впливають на безпеку.

Для методу POST

Вміст форми кодується точно так, як і для методу GET, але замість додавання рядка до URL вміст запиту посилається блоком даних як частина операції POST. Якщо присутній атрибут ACTION, то значення URL, яке там знаходиться, визначає, куди посилати цей блок даних. Цей метод, як вже наголошувалося, рекомендується для передачі великих за об'ємом блоків даних.

Інформація, введена користувачем і відправлена серверу за допомогою методу POST, подається на стандартне введення програмі, вказаній в атрибуті action, або поточному скрипту, якщо цей атрибут опущений. Довжина посиланого файлу передається в змінній оточення CONTENT_LENGTH, а тип даних – в змінній CONTENT_TYPE.

Передати дані методом POST можна лише за допомогою HTML-формы, оскільки дані передаються в телі запиту, а не в заголовку, як в GET. Відповідно і змінити значення параметрів можна, лише змінивши значення, введене у форму. При використанні POST користувач не бачить передавані серверу дані.

Основна перевага POST запитів – це їх велика безпека і функціональність в порівнянні з GET-запросами. Тому метод POST частіше використовують для передачі важливої інформації, а також інформації великого об'єму. Проте не стоїть цілком покладатися на безпеку цього механізму, оскільки дані POST запиту також можна підроблювати, наприклад створивши html-файл на своїй машині і заповнивши його потрібними даними. Крім того, не всі клієнти можуть застосовувати метод POST, що обмежує варіанти його використання.

При відправці даних на сервер будь-яким методом передаються не лише самі дані, введені користувачем, але і ряд змінних, званих змінними оточення, характеризуючих клієнта, історію його роботи, дороги до файлів і тому подібне Ось деякі із змінних оточення:

· REMOTE_ADDR – IP-адрес хоста (комп'ютера), що відправляє запит;

· REMOTE_HOST – ім'я хоста, з якого відправлений запит;

· HTTP_REFERER – адреса сторінки, що посилається на поточний скрипт;

· REQUEST_METHOD – метод, який був використаний при відправці запиту;

· QUERY_STRING – інформація, що знаходиться в URL після знаку питання;

· SCRIPT_NAME – віртуальна дорога до програми, яка повинна виконуватися;

· HTTP_USER_AGENT – інформація про браузер, який використовує клієнт.








Дата добавления: 2016-04-02; просмотров: 1711;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.