+7 (978) 09 16 718
[email protected]Когда посетитель заполняет форму на одной из ваших веб-страниц, данные отправляются в файл, указанный действием. Как данные будут отправлены, определяется выбранным методом – получить или отправить. В этом уроке мы рассмотрим:
Вот пример формы, которая использует метод get для отправки имени пользователя и адреса электронной почты в файл PHP_get.php:
<fоrm action = "PHP_get.php" method = "get">
Ваше имя: <input type = "text" name = "name" />
Ваш электронный адрес: <input type = "text" name = "email" />
<input type = "submit" value = "отправить" />
</ fоrm>
Таким образом, данные, отправленные в файл PHP_get.php, доступны для обработки с помощью встроенных в PHP функций $ _POST или $ _GET, соответственно, для метода post и get.
Эти функции по сути являются массивами, которые хранят данные, отправленные из формы. Вы можете получить доступ к любому из введенных вами значений (в данном случае, имени и адреса электронной почты) в качестве элементов массива $ _POST или $ _GET.
Индексы данных в массиве идентичны имени, которое вы выбрали для соответствующего поля в форме. Например, информация, введенная в поле, для которого name = “imya”, содержится в $ _GET [‘imya’]. Это значение можно использовать в файле PHP_get.php для вывода имени посетителя:
<? php
echo "Привет". $ _ GET ['imya'];
?>
Ниже приведено описание двух функций PHP $ _GET и $ _POST и одного реального примера обработки информации формы.
Функция PHP $ _GET используется для данных, отправляемых из формы с помощью метода get. Особенности функции $ _GET и соответствующего ей метода get заключаются в следующем:
Давайте рассмотрим следующий пример формы с использованием метода get:
<fоrm action = "PHP_get.php" method = "get">
Ваше имя: <input type = "text" name = "name" />
Ваш электронный адрес: <input type = "text" name = "email" />
<input type = "submit" value = "отправить" />
</ fоrm>
На экране форма будет выглядеть так:
Ваше имя:
Ваш электронный адрес:
Введите какое-нибудь имя и значение электронной почты в форме, которая является импровизированной, и посмотрите, как выглядит адресная строка браузера после нажатия кнопки «Отправить». Например, если вы ввели «Георгий» для имени и для адреса электронной почты «[email protected]», поле адреса будет выглядеть так:
https://ravechnost.ru/php_get.php?name=Георгий&email=georgi%40;example.com
Поскольку информация видна всем, конфиденциальная информация, такая как пароли, номера кредитных карт, адреса электронной почты и т. д, не должна отправляться с использованием метода get. С другой стороны, поскольку информация отображается в виде URL, страница может быть добавлена в закладки.
Я также включил код самого файла PHP_get.php, который обрабатывает форму:
<?php heаder('Content-type: text/html; charset=utf-8');
?>
<html>
<h1 style="color:#c04b3b">
<?php
$name=$_GET['name'];
$email=$_GET['email'];
if ($name=="") {
echo "Привет, введите имя"."<br/>";
}
else
{
echo "Здравствуй, ".$name."!"."<br/>";
if (!$email=="")
{
echo $email." интересный адрес.<br/>";
}
}
echo 'Назад к <a href="https://ravechnost.ru/nachalo">уроку</a>';
?>
</h1>
</bоdy>
</html>
Как и $ _GET, функция PHP $ _POST используется для доступа к данным, отправленным в форме, но только при использовании метода post. Особенности метода post следующие:
В дополнение к перечисленным функциям $ _GET и $ _POST PHP также предлагает одну функцию, которая содержит информацию, отправляемую как методом get, так и методом post. $ _REQUEST
используется аналогично $ _GET и $ _POST:
<? php
echo "Привет". $ _ REQUEST ['name'];
?>
Динамические веб-страницы PHP могут реагировать на события и, при разных условиях, представлять другой результат – то, что не под силу статическим HTML-страницам. Такая гибкость в поведении страниц PHP во многом обусловлена так называемыми условными операторами: if, else, elseif, switch.
Условный оператор IF используется, когда мы хотим, чтобы часть программы выполнялась, только если выполняется какое-то условие.
Условие заключено в маленькие скобки, за которым следует сам код, который должен быть выполнен, если условие выполнено:
<? PHP
if ($ name = "Boss") echo "Добрый день, дорогой мистер Босс!";
?>
Если код выполнения содержит более одной команды, он должен быть заключен в большие скобки:
<? PHP
if ($ den = "понедельник")
{
$ sup = "борщ";
$ basic = "рагу";
$ desert = "пирог";
}
>?
Самостоятельное использование if не позволяет выполнять команды, если условие не выполняется. Эта опция позволяет добавить ключевое слово else. Команды, написанные после else, будут выполнены, только если условие после if не выполнено:
<? PHP
if ($ name = "Boss")
echo "Добрый день, дорогой мистер Босс!";
else
echo "Привет!";
?>
Если условие после if не выполняется, PHP позволяет проверить второе условие и выполнить другой код в зависимости от того, выполнено второе условие или нет. Это делается с помощью конструкции if-elseif-else:
<? PHP
if ($ name = "Boss")
echo "Добрый день, дорогой мистер Босс!";
elseif ($ name = "lady")
echo "Здравствуйте, Моя Леди!";
else
echo "Привет!";
>?
Условный оператор switch используется, когда мы хотим отобразить различный код выполнения для каждого заданного значения для переменной. В общем, оператор switch выглядит так:
switch (n)
{
case значение 1:
выполнение команд, если n = значение 1;
break;
case значение 2:
выполнение команд, если n = значение 2;
break;
// ...
//перечисление конкретных значений и команд - количеством не ограничено
default:
выполнение команд, в случае если n отличается от любого из вышеуказанных;
}
Как работает коммутатор: программа берет значение переменной n и начинает его сравнивать последовательно со значениями, описанными в case. Если какое-либо из этих значений соответствует значению n, будет выполнен соответствующий блок команд.
Ключевое слово break используется для завершения процесса, а не для выполнения командного блока из следующего случая, что является поведением по умолчанию для программы PHP.
Последний командный блок (default) будет выполнен, если значение n не найдено.
Циклы позволяют выполнять определенную часть программы многократно – столько раз, сколько указано, либо до выполнения условия.
В PHP используются следующие типы циклов:
Цикл while, который выполняется при выполнении условия true, имеет следующую конструкцию:
while (условие)
{
команды для выполнения;
}
Вот конкретный пример цикла while, который будет выводить квадраты чисел от 10 до 20:
<?php
$i=10;
while ($i<=20)
{
echo $i." квадраты чисел ".$i*$i.<br/>;
$i++;
}
?>
В отличие от while, командный блок do … while выполняется до проверки условия. Если условие истинно, командный блок будет выполнен снова (и условие будет проверено снова), в противном случае программа завершит цикл и перейдет к следующей команде, если таковая имеется. Вот конкретный пример do … while:
<?php
$i=10;
do
{
$i++;
echo $i." квадраты чисел ".$i*$i.<br/>
}
while ($i<=20)
?>
Программа очень похожа на пример цикла while, но поскольку проверка значения числа i выполняется последней, квадрат числа 21 также будет выведен.
Цикл for используется для выполнения командного блока указанное количество раз. Наиболее общая структура цикла for выглядит так:
for (начальное значение; условие; увеличение счетчика)
{
блок команд цикла;
}
Цикл for чаще всего используется в сочетании с неким типом счетчика переменных, который определяет количество повторений в командном блоке.
Вот одно конкретное применение цикла for, который выводит на экране третью степень чисел от 101 до 105:
<?php
for ($i=101; $i<=105; $i++)
{
echo $i." третья степень ".$i*$i*$i."<br/>";
}
?>
Цикл foreach используется для применения одинаковой последовательности команд к каждому из элементов массива. В общем, цикл foreach выглядит следующим образом:
foreach ($ имя_массива as $ значение) {командный блок; }
Цикл foreach работает, принимая элемент массива (начиная с первого), сохраняя его значение в виде переменной $, которая используется для обработки блоком команд, и после завершения всех команд из цикла он начинается заново, но со следующим элементом – пока все элементы массива не будут обработаны.
Вот один конкретный пример использования цикла foreach, который в этом случае будет использоваться для вывода значений элементов массива $ stolici:
<? PHP
$ stolici = array ("Рим", "Мадрид", "Берлин");
foreach ($ stolici as $ value)
{
echo "Одна из столиц, расположенных в Европе это:". $ value. "<br/>";
}
?>