Предварително дефинирани масиви в PHP

Съществуват предварително дефинирани в 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@mysupersite.com, след натискане на бутона „Изпрати данните“ резултатът ще бъде съобщението:

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

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

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

Обновена: 02.04.2022
Беше ли Ви полезна тази статия?

Вижте още