PHP формуляри - $_GET и $_POST
Съхранение на изпратените данни - в масив $_GET или $_POST
Когато посетител попълни формуляр в някоя от интернет страниците Ви, данните се изпращат до файла, указан чрез action. Как ще се изпратят данните се определя от избрания метод - get или post. В този урок ще разгледаме:
- особеностите на двата метода get и post;
- какви възможности за използване на изпратените от формуляр данни дават PHP фукнциите $_GET и $_POST.
Ето един примерен формуляр, който използва метод get за изпращане на името и e-mail адреса на потребителя до файла PHP_get.php:
<form action="PHP_get.php" method="get">
Вашето име:<input type="text" name="ime"/>
Вашият е-mail:<input type="text" name="email"/>
<input type="submit" value="изпрати"/>
</form>
Така изпратените до файла PHP_get.php данни са достъпни за обработка чрез използването на вградените в PHP фукнции $_POST или $_GET - съответно за метод post и get.
Тези функции по същество представляват масиви, които съхраняват изпратените от формуляра данни. Имате достъп до всяка една от въведените стойности (в случая име и e-mail адрес) като елементи от масива $_POST или $_GET.
Индексите на данните в масива са идентични с името (name), което сте избрали за съответното поле във формуляра. Така например въведената информация в полето, за което name="ime", се съдържа в $_GET['ime']. Тази стойност може да се използва във файла PHP_get.php за отпечатване името на посетителя:
<?php
echo "Здравей, ".$_GET['ime'];
?>
Следва описание на двете PHP фукнции $_GET и $_POST и един реално действащ пример за обработка на информация от формуляр.
PHP $_GET функция
PHP $_GET функцията се използва за данни, изпратени от формуляр с метод get. Особеностите на функцията $_GET и съответстващия й метод get са следните:
- Информацията, изпратена с метод get е видима в адресното поле на браузъра.
- Има ограничение на обема информация, изпратена с метод get - 100 знака.
Нека разгледаме следния пример на формуляр, използващ метод get:
<form action="PHP_get.php" method="get">
Вашето име:<input type="text" name="ime"/>
Вашият е-mail:<input type="text" name="email"/>
<input type="submit" value="изпрати"/>
</form>
На екрана формулярът ще изглежда по следния начин:
Въведете някаква стойност за име и за e-mail в импровизирания формуляр и вижте как изглежда адресното поле на браузъра след като щракнете на бутона "изпрати". Ако примерно сте въвели "Георги", за име, а за e-mail адрес "georgi@example.com", то адресното поле ще изглежда така:
http://www.parvisait.com/PHP_get.php?ime=Георги&email=georgi%40;example.com
Понеже информацията е видима за всички, поверителна информация като пароли, номера на кредитни карти, e-mail адреси и т.н. не бива да бъде изпращана с метод get. От друга страна, понеже информацията е видима като URL адрес, страницата може да бъде отбелязвана (bookmark).
По предложение на читател (Кристиян, благодаря за идеята) помествам и кода на самия файл PHP_get.php, който обработва формуляра:
PHP $_POST функция
Подобно на $_GET, PHP $_POST фукнцията се използва за достъп до изпратени от формуляр данни, но само когато е използван метод post. Особеностите на метода post са следните:
- За разлика от метод get, изпратената с метод post инфомрация не се показва в адресното поле на браузъра. Това е удобно при изпращане на поверителна информация, но страницата няма да може да бъде запазена като отметка (bookmark).
- Няма ограничение за обема изпратена с метод post информация.
PHP $_REQUEST функция
Освен изброените $_GET и $_POST фукнции, PHP предлага още една фукнция, която съдържа в себе си информацията, изпратена както с метод get, така и с метод post. $_REQUEST се използва аналогично на $_GET и $_POST:
<?php
echo "Здравей, ".$_REQUEST['ime'];
?>
Ако решите, че "как се прави сайт" ръководството може да бъде полезно и за други хора, моля гласувайте за сайта: