Начало - За начинаещи
PHP и методи за прехвърляне на данни GET и POST. POST, GET: как заявките се различават една от друга Какво представлява прехвърлянето на данни с помощта на метода get

Описание

Атрибутът на метода казва на сървъра за метода на заявката.

Синтаксис

...

Ценности

Стойността на атрибута на метода не е чувствителна към главни и малки букви.

Има два метода - вземете и публикувайте. Get Този метод е един от най-често срещаните и е предназначен за получаване на необходимата информация и прехвърляне на данни къмадресна лента

. В този случай двойките име=стойност се добавят към адреса след въпросителния знак и се разделят с амперсанд (символ &). Удобството при използването на метода get е, че адресът с всички параметри може да се използва многократно, като го запазите например в отметките на браузъра си и можете също да промените стойностите на параметрите директно в адресната лента.

post Методът post изпраща данни към сървъра в заявка на браузър. Това ви позволява да изпращате повече данни, отколкото са налични за метода get, тъй като има ограничение от 4KB. Големи количества данни се използват във форуми, имейл услуги, попълване на бази данни, изпращане на файлове и др.

Задължителен атрибут

Стойност по подразбиране



FORM таг, атрибут на метод, едно от най-основните неща е комуникацията с потребителя. Можем да го попитаме нещо и да му дадем право на отговор (анкета), можем да му дадем правото да напише мнението си за продукт или услуга, можем да му помогнем да изчисли цената на нашите услуги, ако е необходимо да създадем онлайн магазин и др.

Във всички случаи потребителят трябва да има право да напише нещо и да кликне върху нещо. За това са формулярите.

Работа с формуляри в PHP и HTML

Формулярите се идентифицират чрез етикета на формуляра:

атрибут на методапоказва кой метод ще се използва за изпращане на формуляра. Има 2 метода - GET и POST. Прочетете повече за това по-долу, докато ние ще говорим накратко за основните елементи на формата:

Текстово поле - Въведете текст

Текстово поле, в което можете да въведете информация. име атрибут- Име текстово поле, стойност- значение. Те изглеждат така:

Бутон - Въвеждане Изпращане

Бутон, използван за изпращане на формуляри. Изглежда така:

Текстов блок - Textarea

Текстов блок, обикновено използван за писане на големи съобщения. Атрибутни редове, колони - дължина и ширина.

Външен вид:

Прочетете повече за формулярите на нашия уебсайт или в други източници. Целта на този урок е да покаже как обработвайте формуляри с помощта на PHP.

GET и POST метод при изпращане на формуляри

Методи GET и POSTса посочени в атрибута на метода на формуляра, когато той се инициализира:

GET методпредава информация в адреса на страницата, POST метод- в заглавията. За да разберете по-добре какво е GET и POST методНека напишем скрипт, който ще изпрати нашето име и съобщение до сървъра, а сървърът ще покаже съобщението на екрана.

В PHP данни получени по метода GETсъхранявани в променлива $_GET. данни предавани чрез метода POSTсъхранявани в променлива $_POST.

Нека първо да напишем кода за работа с метода GET, а след това с метода POST.

Форми - Дизайнерско студио OX2.ru

 

print_r($_GET); //Изведете масива с помощта на print_r
?>

Вашето име:
съобщение:



Сега нека преработим скрипта за изпращане на данни чрез метода POST.

Форми - Дизайнерско студио OX2.ru

 

print_r($_POST); //Изведете масива с помощта на print_r
?>

Вашето име:
съобщение:



За по-добро разбиране на работата с форми в PHP, изпращане и получаване на данни Методи POST и GET, в следващия урок ще направим проста логическа игра.

При разработването на всеки проект едно от най-основните неща е комуникацията с потребителя. Можем да го попитаме нещо и да му дадем право на отговор (анкета), можем да му дадем правото да напише мнението си за продукт или услуга, можем да му помогнем да изчисли цената на нашите услуги, ако е необходимо да създадем онлайн магазин и др.

OX2 2014-10-05 2014-10-05

Клиентите на браузъра могат да изпращат информация към уеб сървъра.

Преди браузърът да изпрати информация, той я кодира с помощта на схема, наречена URL кодиране. В тази схема двойките име/стойност са свързани със знаци за равенство, а различните двойки са разделени с амперсанд.

Име1=стойност1&име2=стойност2&име3=стойност3

Интервалите се премахват и заменят със знак +, а всички други небуквено-цифрови знаци се заменят с шестнадесетични стойности. След като информацията бъде кодирана, тя се изпраща на сървъра.

GET метод

Методът GET изпраща кодирана потребителска информация, добавена към заявката за страница. Страниците и кодираната информация разделени ли са една от друга? въпросителен знак.

http://www.test.com/index.htm?name1=value1&name2=value2

  • Методът GET създава дълъг низ, който се появява в регистрационните файлове на вашия сървър в полето „Местоположение“ на браузъра.
  • Методът GET е ограничен до изпращане само до 1024 знака.
  • Никога не използвайте метода GET, ако имате парола или др поверителна информацияза изпращане към сървъра.
  • GET не може да се използва за прехвърляне на двоични данни, като изображение или текстови документи, към сървъра.
  • Данните, изпратени чрез метода GET, могат да бъдат достъпни чрез променлива на средата QUERY_STRING.
  • PHP предоставя асоциативния масив $_GET за достъп до цялата изпратена информация чрез метода GET.

if($_GET["name"] || $_GET["age"]) ( echo "Добре дошли ". $_GET["name"]; echo "Вие сте ". $_GET["age"]. " години "; изход(); )

Име: Възраст:

POST метод

Метод ПУБЛИКУВАНЕпредава информация чрез HTTP заглавки. Информацията се кодира, както е описано в случая на метода ВЗЕМЕТЕ, и поставен в заглавката QUERY_STRING.

  • Методът POST няма ограничение за размера на данните, които трябва да бъдат изпратени.
  • Методът POST може да се използва за изпращане на ASCII, както и на двоични данни.
  • Данните, изпратени чрез метода POST, преминават през HTTP заглавка, така че сигурността зависи от HTTP протокола. Като използвате Secure HTTP, можете да гарантирате, че вашата информация е защитена.
  • PHP предоставя асоциативен масив $_POST за достъп до цялата информация, изпратена чрез метода POST.

Опитайте следния пример, като поставите изходен кодв скрипта test.php.

if($_POST["name"] || $_POST["age"]) ( if (preg_match("[^A-Za-z"-]",$_POST["name"])) ( die (" невалидно име и името трябва да е алфа"); ) echo "Добре дошли ". $_POST["име"]; echo "Вие сте ". $_POST["възраст"]. " години."; exit(); )

Име: Възраст:

Променлива $_REQUEST

PHP променлива $_REQUESTсъдържа съдържание като $_GET, $_POST, така че $_COOKIE. Ще обсъдим променливата $_COOKIEкогато говорим за бисквитки.

PHP променливата $_REQUEST може да се използва за извличане на резултата от данните на формуляра, изпратени с помощта на методите GET и POST.

Общото между тях е, че работят по един и същ начин. Технически няма разлика между тях. Но има идеологически различия.

Ще говоря за тях в контекста на PHP. Моля, имайте предвид, че HTTP протоколът е косвено свързан с PHP, тъй като е създаден за обмена html странициа PHP просто разширява възможностите и на двете.

Заявката GET се използва за получаване на данни, а POST се използва за изпращане. (Не забравяйте, че технически те работят по същия начин).

Следователно, в контекста на PHP, въз основа на тази идеология, направихме следното:
1. Всеки път, когато стартирате PHP, суперглобалните масиви ($_GET, $_POST) се създават по подразбиране.
2. Ако има въпросителен знак (?) в низа на заявката. Всичко след него се обмисля параметри GET заявка, те се представят във формат "ключ"="стойност" и символът амперсанд (&) се използва като разделител.
Пример:
GET /index.php?name=Andrey&surname=Galkin
Това е низ за заявка, има 2 параметъра. тези параметри ще отидат в масива $_GET.
3. $_POST се попълва по различен начин. съдържанието на този масив се попълва от "заглавките на заявките". Тоест от място, което е ясно скрито от погледа. Браузърът се грижи за цялата работа по създаването на такива заглавки. Въпреки че понякога нещо се редактира ръчно в заглавията.

Най-често заявката за публикуване се използва във формуляри (за изпращане на данни).

Например, имаме форма за вход с 2 полета: потребителско име и парола.

Нека си представим, че използваме метода GET. След това, когато изпращаме формуляра, ще отидем на следния адрес /login.php?login=Andrey&password=123 Съгласете се, че предаването на такава информация по този начин не е никак безопасно. Всеки може да отвори вашия браузър и като започне да въвежда адреса на сайта, може да види вашите пароли и влизания от хронологията.

Но ако посочим метода POST, ще получим следната заявка:
POST /login.php (login=Andrey&password=123) това, което е в скоби, ще бъде скрито и няма да бъде запазено по никакъв начин в браузъра.

За да обобщим:
GET е да получите конкретна страница определена форма(сортиране, текуща страница на блог, лента за търсене и т.н.).
POST - за изпращане на данни, които не засягат показването на страницата, в смисъл, че тези данни засягат само резултата от скрипта (влизане, пароли, номера на кредитни карти, съобщения и др.).

И още една добра новина е, че могат да се комбинират напр
POST /index.php?page=login (login=Andrey&password=123) Мисля, че вече обясних достатъчно какво ще излезе от това и кои параметри ще влязат в кой масив.

Използването на методите GET и POST в PHP е трудно да се надцени, тъй като тези методи се намират на почти всеки уебсайт. Преди да изучите материала, описан по-долу, ви съветвам да се запознаете с html тага

. Нека разгледаме подробно всеки от тези методи.

GET метод

Методът GET използва URL низ за прехвърляне на данни. Може да сте забелязали дълги и неясни URL адреси. Например: function.php?login=Alex&email=dezyakin. В този случай данните се обработват във function.php. След въпросителния знак "?" има списък с предадени параметри (параметрите са разделени с "&") със стойности: на параметъра за влизане е присвоена стойността Alex, а на променливата имейл - стойността dezyakin. Данните ще се съхраняват в суперглобалния масив $_GET. Пример за използване на метода GET е представен по-долу:

вход: Имейл: Използвайки суперглобалния масив $_GET, показваме приетите стойности:*/ ехо "
login = ". $_GET["login"] ; echo "
имейл = ". $_GET["имейл"] ; ?>

Забележете как четем стойности от суперглобалния масив $_GET: $_GET["име_на_променлива"]. В нашия пример имената на променливите бяха декларирани във формата (име=вход и име=имейл).

съвет:
Преди обработка на получените стойности Ви съветвам да проверите за съществуването им чрез функции isset(име_на_променлива)или празен (име_на_променлива)- тези функции бяха обсъдени в предишния урок 2: променливи в PHP. Например:

проверка за съществуване с помощта на isset: if isset ($_GET["login"] ) ( оператори за обработка на вход ... } //или проверете за съществуване, като използвате празно:ако е празно ($_GET["имейл"] ) ( оператори за обработка на имейли ... } ?>

Във формата можете да посочите името на файла, който ще обработва прехвърлените стойности. Това се прави с помощта на атрибута за действие на формуляра, на който може да бъде присвоен адресът на този файл. По подразбиране този файл е присвоен текущия файл(т.е. обработва се във файла, където се намира формулярът). Ето пример, в който данните от формуляр се прехвърлят към файла srcipt.php за обработка:

вход: Имейл:

Файлът script.php трябва да съдържа някакъв вид манипулатор на информация, в противен случай информацията ще бъде предадена празна.

Методът GET има много недостатъци:

  • Потребителят вижда стойностите на предадените параметри;
  • Потребителят може лесно да фалшифицира преминали параметри;
  • Неудобно предаване на двоична информация (трябва да я кодирате в текстов формат);
  • Обемът на прехвърляните данни е ограничен - 8 KB;

Поради горните недостатъци, методът GET се използва само в случаите, когато трябва да се прехвърли малко количество данни и тези данни не са класифицирани по никакъв начин.

POST метод

Методът POST се различава от GET по това, че данните се прехвърлят в лична форма. Има суперглобален масив $_POST, от който данните могат да се четат по следния начин: $_POST["име_на_променлива"]. Например:

вход: "> Имейл: ">
Използвайки суперглобалния масив $_POST, показваме приетите стойности:*/ ехо "
login = ". $_POST["login"] ; echo "
имейл = ". $_POST["имейл"] ; ?>

Резултатът от изпълнението на горния код е показан на фигурата по-долу:

Както можете да видите, URL адресът няма послепис, но въпреки това данните бяха получени и показани.

Забележка:
1) Обемът на предаваните стойности с помощта на метода POST е ограничен по подразбиране и е равен на 8 MB. За да увеличите тази стойност, трябва да промените директивата 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.



 


Прочетете:



Системи за пълнене на билети

Системи за пълнене на билети

Крайният резултат от играта на лотарията, тоест сумата на печалбите минус разходите, се влияе от четири фактора: първият е броят на избраните числа...

Делът на Yandex на руския пазар за интернет търсене показа рекорден спад

Делът на Yandex на руския пазар за интернет търсене показа рекорден спад

Какво е DuckDuckGo е доста добре позната търсачка с отворен код. Сървърите се намират в САЩ. В допълнение към вашия собствен робот...

Измерване на параметрите на високоговорителя за субуфер till-small Ако сте нов в нашия форум

Измерване на параметрите на високоговорителя за субуфер till-small Ако сте нов в нашия форум

В съвременния свят високоговорителите са широко разпространени, тъй като без тези устройства е невъзможно да се произвеждат телевизори, мобилни телефони,...

Как да се свържете с интернет на Motive: инструкции стъпка по стъпка за настройки

Как да

Настройката на MMS на Android може да се наложи в два случая. Първият от тях е закупуването на нов смартфон. Второто е нулиране на съществуващи...

feed-image RSS