Основная причина применения языка серверных сценариев — желание предоставить пользователям сайт с динамическим содержимым.
Рассмотрим простой пример. Заменим РНР-код в файле processorder.php
на приведенный ниже.
<?php
echo "<p>Заказ обработан в";
echo date('H:i, j F');
echo "</p>";
?>
В этом коде используется встроенная РНР-функция date()
, которая сообщает клиенту дату и время обработки его заказа. Значения будут меняться при каждом наполнении сценария.
РНР имеет обширную бибилиотеку функций, которыми можно воспользоваться при разработке веб-приложений. Большинству этих функций нужно передать некоторые данные, чтобы они возвращали соответствующие данные в качестве результатов.
Вызов функции имеет следующий вид:
date('H:i, jS F');
Строка, передаваемая функции данные заключена в круглые скобки. Это значение называется аргументом или параметром функции.
Откройте файл processorder.php
.
В окне веб-браузера это будет выглядеть ТАК.
Аргумент, передаваемый функции date()
, должен быть строкой формата, который определяет требуемый стиль вывода. Каждая буква в строке представляет часть строки даты и времени суток. Н
представляет часы в 24-часовом формате, i
— минуты с ведущим нулем, j
— день месяца без ведущего нуля, F
—полное название месяца.
Доступ к переменным формы
Весь смысл использования формы заказа заключается в получении информации о заказе клиента. Получение подробной информации о том, что клиент ввел с клавиатуры, реализуется в РНР очень просто, тем не менее точный метод зависит от выбора версии РНР и от установок в вашем файле php.ini
.
Внутри РНР-сценария к каждому из полей формы можно получить доступ как РНР-переменной, которая имеет то же имя, что и поле формы. В языке РНР переменные легко распознать, так как все они начинаются со знака доллара ($
).
К содержимому поля filtr
можно получить доступ следующими способами:
$filtr //короткий стиль
$_POST ['filtr'] //средний стиль
$_HTTP_POST_VARS ['filtr'] //длинный стиль
В этом примере и дальше мы будем использовать средний стиль для ссылок на переменные формы, но для простоты использования мы создадим короткие версии применения.
Рассмотрим все возможные методы применения стиля:
- Короткий стиль (
$filtr
) удобен в работе, однако требует включения конфигурационной настройкиregister_globals
. Эта настройка начиная версии РНР 4.2.0 отключена по умолчанию. - Средний стиль (
$_POST ['filtr']
) является рекомендованным. Введен в употребление в версии РНР 4.1.0, поэтому не будет работать в более старых версиях. - Длинный стиль (
$_HTTP_POST_VARS ['filtr']
) представляет наиболее подробную форму записи. Признан устаревшим и скорее всего выйдет из употребления. Может быть отключен с помощью директивыregister_long_arrays
.
Короткий стиль, несмотря на прямой доступ к переменным, не нашел широкого распространения из-за условий безопастности.
Средний стиль предусматривает считывание переменных форм из массивов $_POST, $_GET, $_REQUEST
. Какой массив использовать, зависит от того, какой метод был избран для передачи формы POST
или GET
. Кроме того, все данные, передаваемые посредством метода POST
или GET
, доступны через массив $_REQUEST
.
Если форма была отправлена методом POST
, то данные помещенные в поле filtr
, будут сохранены в $_POST['filtr'];
если же форма была передана с помощью метода GET
— то в $_GET['filtr']
. В том и другом случае данные будут доступны в $_REQUEST{'filtr']
.
Эти массивы относятся к категории суперглобальных. Если вы работаете в более старых версиях РНР, то не смодете получить доступ к данным массивам.
При использовании длинного стиля, то доступ к ответу пользователя можно получить через $_HTTP_POST_VARS['filtr']
и $_HTTP_GET_VARS['filtr']
.
Для копирования значения одной переменной в другую служит операция присваивания, для обозначения которой в языке РНР используется знак равенства (=
).
Создадаим новую переменную с именем $filtr
и скопируем в нее содержимое $_POST['filtr']
.
$filtr = $_POST['filtr'];
То же самое проделаем с другими данными формы. Создадим для них котроткие переменные.
<?php
//создаем короткие имена переменным
$filtr = $_POST['filtr'];
$filtr_v = $_POST['filtr_v'];
$sparkqty = $_POST['sparkqty'];
?>
Поместим этот блок в самом начале сценария, чтобы потом его было легче найти.
Этот код создает три переменные $filtr, $filtr_v, $sparkqty
и помещает в них данные, которые были переданы с помощью метода POST формы.
Выведем сценарий в окно веб-браузера. Для этого вставим в нижнюю часть следующие строки:
echo "<p>Список вашего заказа:</p>";
echo $filtr. " - фильтр масляный <br>";
echo $filtr_v. " - фильтр воздушный<br>";
echo $sparkqty. " - свечи зажигания <br>";
Теперь файл processorder.php
будет выглядеть так:
Вернитесь к файлу orderform.php
, заполните форму и нажмите кнопку Отправить заказ.
В окне веб-браузера это будет выглядеть ТАК.
Конкатенация строк
В сценарии опратор echo
применялся для вывода значений, введенных пользователем в каждое из полей формы, за которым следовал некоторый пояснительный текст. Обратите внимание, что между именем переменной и следующим за ним текстом находится точка (.
).
echo $filtr. " - фильтр масляный <br>";
Эта точка и есть операция коктенации строк, которая используется для объединения строк (фрагментов текста) в один текст. Эта операция позволяет избежать записи нескольких операторов echo
.
Каждую. переменную, отличную от переменной типа массива, можно поместить в двойные кавычки, после чего применить к ней оператор echo
.
echo "$filtr - фильтр масляный <br>";
Этот оператор эквивалентен первому. Оба формата допустимы, и какой из них употреблять — дело вкуса. Такой процесс замены переменной ее содержимым известен как вставка. Обратите внимание, что при вставке должны применяться только двойные кавычки. Нельзя помещать имена переменных в одинарные кавычки в подобных случаях.
Переменные и литералы
Переменные и строки, конкатенацию которых мы осуществляем в каждом из операторов echo
, имеют разную природу. Переменные — это символы, применяемые для обозначения данных. Строки — это по сути данные. Когда мы употребляем фрагменты неструктурированных данных в программе, подобной рассматриваемой, мы называем их литералом, чтобы отличить от переменной. $filt
— это переменная, т.е символ, который представляет введенные клиентом данные. С другой стороны " - фильтр масляный <br>"
— это литерал. Он представляет самого себя.
Для указания строк есть и третий способ. В РНР 4 был введен heredoc-синтаксис(<<<)
. Этот синтаксис позволяет определять длинные строки аккуратно, указывая маркер конца строки, который будет использоваться для завершения строки. В представленном ниже примере определяется и выводится длинная строка:
echo <<<theEnd
line1
line2
line3
theEnd
Лексима theEnd
выбрана произвольно. При ее выборе должно лишь гарантироваться, что она нигде не встречается в тексте. Для завершения heredoc-строки необходимо поместить в начале новой строки лексему конца строки. heredoc-строки
допускают вставку переменных, подобно строкам в двойных кавычках.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться