THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Спільного між ними то що вони працюють однаково. Різниці між ними технічно ніякої. А ось ідеологічні відмінності є.

Я розповім про них в контексті PHP. Прошу зауважити що протокол HTTP до PHP має непряме відношення бо він створювався для обміну html сторінками а PHP просто розширює можливості і того і іншого.

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

Тому в контексті PHP спираючись на цю ідеологію зробили такий спосіб:
1. При кожному запуску PHP за замовчуванням створюються суперглобальні масиви ($ _GET, $ _POST).
2. Якщо в рядку запиту є знак питання (?). Те все що після нього вважається параметрами GET запиту вони представлені в форматі "ключ" \u003d "значення" і як роздільник використовується знак амперсанда (&)
приклад:
GET /index.php?name\u003dАндрей&surname\u003dГалкін
це рядок запиту, тут 2 параметра. ці параметри потраплять в масив $ _GET.
3. $ _POST заповнюється іншим способом. вміст цього масиву заповнюється з "заголовків запиту". Тобто з місця, прихованого від очей в явному вигляді. Всю рутину по створенню таких заголовків бере на себе браузер. Хоча іноді і щось редагується в заголовках в ручну.

Найчастіше пост запит використовується в формах (для відправки даних).

Наприклад у нас є форма для входу 2 поля логін і пароль.

Уявімо що ми використовуємо GET метод. Тоді при відправці форми ми перейдемо на наступну адресу /login.php?login\u003dАндрей&password\u003d123 погодьтеся що так передавати таку інформацію зовсім небезпечно. Будь-хто може відкрити ваш браузер і починаючи вводити адресу сайту він з історії може побачити ваші паролі і логіни.

А ось якби ми вказали методом POST то ми б отримали такий запит:
POST /login.php (login \u003d Андрій & password \u003d 123) то що в дужках було б приховано і ніяк не збережено в браузері.

Загалом підсумовуючи:
GET - це щоб отримати певну сторінку в певному виді (сортування, поточна сторінка в блозі, рядок пошуку і т.п.).
POST - для оправлення даних які не впливають на відображення сторінки, в тому плані що ці дані впливають тільки на результат виконання скрипта (логіни, паролі, номери кредиток, повідомлення і т.п.).

І ще одна хороша новина їх можна комбінувати, наприклад
POST /index.php?page\u003dlogin (login \u003d Андрій & password \u003d 123) Думаю я вже досить пояснив що з цього вийде і які параметри в який масив потраплять.

Застосування методів GET і POST в PHP важко переоцінити, оскільки ці методи зустрічаються практично на кожному сайті. Перш ніж вивчати нижче описаний матеріал, раджу ознайомиться з html тегом

. Розглянемо кожен з цих методів в подробиці.

метод GET

Метод GET використовує для передачі даних рядок URL. Можливо, Ви звертали увагу на довгі і незрозумілі URLи. наприклад: function.php? login \u003d Alex & email \u003d dezyakin. В даному випадку дані обробляються в function.php. Після знака питання "?" Йде перерахування переданих параметрів (параметр поділяються знаком "&") зі значеннями: параметру login присвоєно значення Alex, а змінної email значення dezyakin. Дані будуть зберігається в суперглобального масиві $ _GET. Наведемо приклад використання методу GET представлений нижче:

Login: E-mail: За допомогою суперглобального масиву $ _GET виводимо прийняті значення:* / Echo "
login \u003d ". $ _GET [" login "]; echo"
email \u003d ". $ _GET [" email "];?\u003e

Зверніть увагу на те, як ми зчитуємо значення з суперглобального масиву $ _GET: $ _GET [ "ім'я_змінної"]. У нашому прикладі імена змінних були оголошені в формі (name \u003d login і name \u003d email).

Порада:
Перш ніж обробляти отримані значення раджу перевіряти їх на існування через функції isset (ім'я_змінної) або empty (ім'я_змінної) - ці функції були розглянуті в попередньому уроці 2: змінні в PHP. наприклад:

перевірка на існування з допомогою isset: if isset ($ _GET [ "login"]) ( оператори для обробки login ... } //або ж перевірити на існування з допомогою empty: if empty ($ _GET [ "email"]) ( оператори для обробки email ... } ?>

У формі можна вказати ім'я файлу, який буде обробляти передані значення. Робиться це за допомогою атрибуту форми action, з яким можна привласнити адресу цього файлу. За замовчуванням цей файл присвоєно поточного файлу (тобто обробляється в файлі, де і розташована форма). Наведемо приклад, в якому дані з форми передаються на обробку в файл srcipt.php:

Login: E-mail:

У файлі script.php повинен містяться якийсь оброблювач інформації, інакше інформація буде передана в порожню.

Метод GET має безліч недоліків:

  • Користувач бачить значення переданих параметрів;
  • Користувач може легко підробити передані параметри;
  • Незручна передача бінарної інформації (доводиться кодувати в текстовий формат);
  • Обсяг переданих даних обмежений - 8 Кбайт;

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

метод POST

Метод POST відрізняється від GET тим, що дані передаються в закритій формі. Існує суперглобальний масив $ _POST, з якого можна зчитувати дані в такий спосіб: $ _POST [ "ім'я_змінної"]. наприклад:

Login: "\u003e E-mail: ">
За допомогою суперглобального масиву $ _POST виводимо прийняті значення:* / Echo "
login \u003d ". $ _POST [" login "]; echo"
email \u003d ". $ _POST [" email "];?\u003e

Результат виконання вище описаного коду представлений на малюнку нижче:

Як бачите URL не має ніякої приписки, але тим не менше дані були отримані і виведені.

Примітка:
1) Обсяг переданих значень методом POST за замовчуванням обмежений і дорівнює 8 Мбайт. Щоб збільшити це значення потрібно змінити директиву post_max_size в php.ini.

2) В ранніх версіях PHP замість коротких назв суперглобальних масивів $ _GET і $ _POST використовувалися довші імена: $ HTTP_GET_VARS і $ HTTP_POST_VARS. За умовчанням вони вимкнені в php 5, але Ви можете їх включити в конфігураційному файлі php.ini за допомогою параметра register_long_arrays. В php 6 версії ці довгі назви будуть недоступні.

3) Перед обробкою змінних з $ _POST, раджу перевіряти змінні на їх наявність, також як це робилося з методом GET.

тег

- одна з найважливіших складових будь-якого сайту. Він містить в собі всі елементи - поля, кнопки, чекбокси, радіо кнопки та інші.

Action і method

Form має багато атрибутів, але основними і обов'язковими є і . Якщо ці атрибути відсутні, то форма не братиме введені значення.

Атрибут Action

- атрибут, в якому вказується посилання обробника значень. Тобто елемент, який вказаний в , Буде обробляти значення форми. Якщо не вказати його, то все значення повернуться до початкового значення, оновлюючи сторінку.

Можна вказати шлях "form.html", але частіше використовуються обробники написані на мові "php (form.php)". Може бути і такий варіант, що сторінка, на якій знаходиться форма, сама обробляє значення і написана на мові php. В цьому випадку можна не вказувати атрибут .

Також, в якості обробника може служити адреса електронної пошти. Щоб записати його в атрибуті action використовується ключове слово mailto :, в ньому вказується ім'я E-Mail адреси.

Якщо використовувати E-Mail для відправки, то при активації, відкриється стандартна програма Windows.

Атрибут Method

- відповідає за спосіб обробки значень. При активації форми, вказаний метод буде повідомлятися сервера, а потім оброблятися у відповідності з ним.

Всього способів обробки 2 - і Вони є значеннями атрибута.

Кожен із значень можна вводити як з великою, так і з маленької літери. Великого значення це не має.

метод GET

- метод протоколу HTTP, який є найбільш використовуваним. Він отримує всі дані форми, обробляє їх, а потім відображає в адресному рядку.

Даний метод є дуже зручним, тому що дозволяє міняти отримані значення в браузерної рядку. Крім того, на його адресу можна посилатися кілька разів.


Поганий стороною використання є зниження безпеки і обмежений обсяг оброблюваних даних. Погано на безпеку він впливає тому, що всі введені значення відображаються в адресному рядку.

Не використовуйте для створення форм з конфіденційною інформацією. Такі форми мають підвищену ймовірність злому.

метод POST

Використовується рідше ніж . Він також передає значення форми, але не відображає їх в адресному рядку, що підвищує загальну безпеку сайту. Через це він краще підходить для використання в веб-додатках.

метод Дозволяє передати більший обсяг інформації, ніж . Можна передавати маленькі текстові файли, об'ємом до 4КБ.

Більша кількість інформації роблять його більш придатним для великих форумів і поштових служб. Він краще підходить для роботи з базами даних.

Оброблювані значення зберігаються один раз, а потім залишаються незмінними. Тобто не можна звертатися до одного й того ж адресою необмежену кількість разів, як при використанні методу .

висновок

У цій статті ви більш детально ознайомилися з атрибутами тега form, а також зі значеннями і Звичайно, це не вся інформація про їх функції. Детальніше дізнатися про їхню роботу ви зможете при вивченні PHP.

Можете детально розібратися в цих методах вивчивши додаткову інформацію. Удачі в вивченні!

Сьогодні мені трохи захотілося вдариться в примітивні речі і описати те, що можна знайти у всесвітній мережі в великій кількості і без особливих труднощів. Йтиметься практично про святая святих протоколу HTTP: POST і GET запитах.

Багато запитають навіщо? Відповім коротко і ясно: що це і навіщо це потрібно - знають далеко не всі, а ті хто хоче дізнатися про це (при цьому мало що розуміючи в it сфері) часто не можуть зрозуміти те що пишуть в багатьох і багатьох статтях присвячених даній темі. Я ж постараюся на пальцях пояснити що таке POST і GET запити і з чим їх їдять.
Отже, почнемо нашу подорож в казку ...
Якщо ви читаєте це повідомлення, то Ви як мінімум знаєте як виглядає Інтернет і що таке Інтернет сайт. Опустивши всі тонкощі роботи всесвітньої павутини, будемо оперуватися такими поняттями як користувач і сайт. Як не крути але ці два суб'єкти повинні якось взаємодіяти один з одним. Ось люди, наприклад, спілкуються між собою завдяки жестам, емоціям і мови, тварини видають якісь звуки, а що ж відбувається при «спілкуванні» людини і Інтернет ресурсу? Тут ми маємо випадок обміну інформацією, який можна перенести і на людський розмова плану «Питання-відповідь». Причому і питання і відповіді можуть задавати як і користувач, так і сайт. Коли ми говоримо про сайт, то його питання і відповіді, як правило, завжди виражаються у вигляді Інтернет сторінки з тим чи іншим текстом. Коли ж мова йде про користувача, то тут все відбувається завдяки GET і POST запитам (звичайно не тільки, але ми говоримо про них).

Таким чином ми з'ясували, що об'єкти нашої теми необхідні для «спілкування» з сайтами. Причому як і GET, так і POST запити можуть використовуватися і для «завдання питань» сайту і для «відповідей». Чим же вони відрізняються? Все досить просто. Однак для пояснення відмінностей, доведеться розглянути приклад, в якості якого візьмемо сайт плану Інтернет магазин.
Напевно Ви часто звертали увагу, коли шукали що-небудь в онлайн магазинах, що вдаючись до пошуку по фільтрам, адреса сайту перетворювався з красивого «http://magaazin.ru» в страшний «http://magaazin.ru/?category\u003d shoes & size \u003d 38 ». Так ось, все що йде після символу '?' І є Ваш GET запит сайту, а якщо бути зовсім точним, то в даному випадку Ви як би питаєте сайт, про те що у нього є в категорії «Взуття» з розмірів «38» (даний приклад взятий з голови, на ділі все може виглядати не так очевидно). У підсумку ми маємо що питання ми можемо задавати самі, шляхом зазначення їх в рядку адреси сайту. Очевидно, що даний метод має кілька недоліків. По-перше, будь-який хто знаходиться поруч з користувачем за комп'ютером, може спокійно підглянути все дані, тому використовувати даний вид запитів для передачі паролів вкрай не бажано. По-друге, є обмеження на довжину рядка, яка може бути передана з поля адреси сайту, а значить особливо багато даних передати не вийде. Однак безсумнівним плюсом використання GET запитів є його простота використання і можливість швидко питати сайт, що особливо буває корисно при розробці, але це вже інша історія ...
Тепер поговоримо про POST запитах. Догадливі читачі, можливо, зметикували, що головним відрізняємо даного запиту від його побратима - скритність переданих даних. Якщо розглядати Інтернет магазин, то яскравим прикладом де використовується запит POST - реєстрація на сайті. Сайт запитує Ваші дані, Ви ці дані заповнюєте і при натисканні на кнопку «Реєстрація» посилаєте свою відповідь. Причому ніяк зовні ці дані не відобразяться. Так само варто відзначити, що запитувати можуть досить велика кількість інформації - а значущий обмежень POST запит не має. Ну і якщо торкнутися мінус, то такий запит швидко не сгенеріруешь. Без спеціальних навичок, тут вже не обійтися. Хоча насправді все не так вже й складно, але це знову ж таки - інша історія.
Підіб'ємо невеликий підсумок. POST і GET запити потрібні для «спілкування» користувача і сайту. Вони по суті практично є протилежністю один одного. Використання тих чи інших видів запитів залежить від конкретної ситуації і користуватися тільки одним видом запиту вкрай незручно.

опис

Атрибут method повідомляє серверу про метод запиту.

синтаксис

...

значення

Значення атрибута method не залежить від регістра. Розрізняють два методи - get і post.

Get Цей метод є одним з найпоширеніших і призначений для отримання необхідної інформації і передачі даних в адресному рядку. Пари «ім'я \u003d значення» приєднуються в цьому випадку до адреси після знаку питання і розділяються між собою амперсандом (символ &). Зручність використання методу get полягає в тому, що адреса з усіма параметрами можна використовувати неодноразово, зберігши його, наприклад, в закладки браузера, а також змінювати значення параметрів прямо в адресному рядку. post Метод post посилає на сервер дані в запиті браузера. Це дозволяє відправляти більшу кількість даних, ніж є методом get, оскільки у нього встановлено обмеження в 4 Кб. Великі обсяги даних використовуються у форумах, поштових службах, заповненні бази даних, при пересиланні файлів і ін.

обов'язковий атрибут

Значення за замовчуванням

HTML5 IE Cr Op Sa Fx

Тег FORM, атрибут method

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму