В материалите за функциите e подчертано, че съществуват предварително дефинирани в езика функции, както и възможност програмиста да създава собствени функции.

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

Някои предварително дефинираните променливи са от типа масив. Две от най-ползваните такива променливи са $_POST и $_GET.

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

Друг вид променливи са т.нар. глобални променливи, които могат да се ползват от всички функции в скрипта. За да се възприеме една променлива като глобална е нужно вътре във функцията изрично да се декларира, че тя е такава. Това се прави като пред името на променливата, употребена в дадена функция, се пише ключовата дума global. Ако това не бъде направено PHP ще възприеме променливата като локална по подразбиране. В долния пример променливата $prom1 е декларирана като глобална във функцията funk1():

<?php

$prom1 = стойност;

function funk1()
{
global $prom1;

}

?>

Няколко променливи може да бъдат декларирани едновременно като глобални. За целта е необходимо те да бъдат записани след ключовата дума global и да са отделени една от друга със запетаи, например:

<?php

$prom1 = стойност1;
$prom2 = стойност2;

function funk1()
{
global $prom1, $prom2;

}

?>

Съществуват и още един вид променливи – така наречените суперглобални променливи, които са предварително дефинирани в езика и могат да бъдат ползвани в произволен брой скриптове. $_POST и $_GET са именно такива променливи. Те са от типа променливи array (масив), затова освен суперглобални променливи биват наричани още суперглобални масиви (superglobal arrays). PHP не разполага с механизъм чрез който да създавате собствени суперглобални променливи, т.е. могат да се ползват единствено тези, които са предварително вградени в езика.

Масивите $_POST и $_GET позволяват да бъде достъпвана информацията, въведена от юзери във формуляр. Когато даден юзер попълни съответния формуляр и натисне бутона за извършване на действието (Submit), въведените във формуляра данни биват изпратени и стават достъпни след обработката им от PHP скрипта.

Подобен на $_POST и $_GET е и масива $_REQUEST, който може да бъде използван вместо тях.

От HTML би трябвало да знаете, че чрез атрибута method се определя какво действие ще се извърши с формуляра, т.е. какъв ще е метода, по който ще се оперира с данните. Методите могат да бъдат GET и POST. Чрез тях съдържанието на формуляра се изпраща за обработка от скрипта, указан чрез атрибута action.

Да направим един най-прост формуляр с едно поле за въвеждане на име:

<html>
<head>
<title>Формуляр за въвеждане на име</title>
</head>

<body>

<form action=“showname.php“ method=“POST“>

Въведете името си:<br />
<input type=“text“ name=“ime“>

<input type=“submit“ value=“Изпрати данните“>

</form>

</body>
</html>

Формуляра ще изглежда така:

Въведете името си:

Може да съхраните страницата например като form.html или form.php

Сега трябва да направим скрипта showname.php, който ще обработва въведените данни:

<?php

echo $_POST[„ime“];

?>

Чрез масива $_POST вземаме от формуляра стойността на полето с название ime. Това правим като записваме названието на полето в квадратни скоби след названието на масива. Названието на полето, в случая ime, представлява „ключ“, чрез който може да се обърнем и да достъпваме стойността, към която „ключа“ сочи. Тази стойност ще бъде името на потребителя, което той трябва да въведе във формуляра. Извеждаме стойността на екран чрез командата echo.

Повече информация за ключовете и стойностите на масивите може да видите в материала Масиви: Деклариране на масиви.

Сега вече може да ползваме формуляра. При написване на нещо в полето и натискане на бутона „Изпрати данните“ скрипта ще покаже въведената информация.

Може да усложним малко примера като направим формуляр с две полета, например за име и имейл:

<form action=“nameandemail.php“ method=“post“>

Въведете името си:<br />
<input type=“text“ name=“ime“><br />

Въведете имейла си:<br />
<input type=“text“ name=“email“><br />

<input type=“submit“ value=“Изпрати данните“>
</form>

Скрипта nameandemail.php може да изглежда така:

<?php

$ime = $_POST[„ime“];
$email = $_POST[„email“];

if ($ime == null || $email == null)
{echo „Не сте въвели име или имейл!“;}

else
{echo „Здравейте, $ime! Вашия имейл е $email.“;}

?>

В случая стойностите на $_POST за името и имейла са присвоени съответно на променливите $ime и $email. След това чрез конструкцията if-else и логическия оператор ИЛИ (||) сме дали на скрипта следната задача:

АКО променливата $ime ИЛИ променливата $email съдържат празна стойност (null), тогава покажи съобщението „Не сте въвели име или имейл!“. В ПРОТИВЕН СЛУЧАЙ, т.е. ако и двете променливи не са с нулева стойност (ако и в двете полета на формуляра има въведени данни), покажи съобщението „Здравейте (следва написаното в 1-то поле)! Вашия имейл е (следва написаното във 2-то поле)“.

По този начин правим елементарна проверка за грешки от страна на юзера, в случая – дали не е оставил някое поле непопълнено.

Ако напишете в полетата от формуляра например името Иван Иванов и имейла ivanov@domain.com, след натискане на бутона „Изпрати данните“ резултата ще бъде съобщението:

Здравейте, Иван Иванов! Вашия имейл е ivanov@domain.com

Ако пропуснете да попълните едното или и двете полета на формуляра резултата ще е съобщението:

Не сте въвели име или имейл!