Оценка на читателите: / 36
Слаба статияОтлична статия 

PHP формуляри - $_GET и $_POST

Съхранение на изпратените данни - в масив $_GET или $_POST

Когато посетител попълни формуляр в някоя от интернет страниците Ви, данните се изпращат до файла, указан чрез action. Как ще се изпратят данните се определя от избрания метод - get или post. В този урок ще разгледаме:

  1. особеностите на двата метода get и post;
  2. какви възможности за използване на изпратените от формуляр данни дават 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>

На екрана формулярът ще изглежда по следния начин:

Вашето име: Вашият е-mail:

Въведете някаква стойност за име и за 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'];
?>

 

Ако решите, че "как се прави сайт" ръководството може да бъде полезно и за други хора, моля гласувайте за сайта:

+добави в любими.ком Елате в .: BGtop.net :. Топ класацията на българските сайтове и гласувайте за този сайт!!!

Ако желаете да оставите коментар към статията, трябва да се регистрирате.