Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости

Добавление динамического содержимого

Категория: WEB-программирование / PHP и MySQL / Уроки PHP

До сих пор мы не использовали PHP для выполнения каких-либо действий, которые нельзя было бы реализовать с помощью обычного html.
Давайте начнём с рассмотрения простого примера. Замените PHP-код в файле cd.php на следующий код:


<?
	echo "Ваш заказ был принят в ";
	echo date("H:i, jS F");
	echo "<br>";
?>
В этом коде встроенная PHP-функция date() используется для сообщения клиенту даты и времени обработки заказа. Это значение будет изменяться при каждом выполнении сценария. Вывод, полученный в результате одного такого выполнения сценрия показан на рисунке 1.3

Вызов функции.

Взгляните на вызов функции date(). Это общая форма вызова функции. PHP имеет обширную библиотеку функций, которые можно использовать при разработке web-приложений. Взгляните на вызов функции:
date("H:i, jS F")
Обратите внимание, что передаваемая функции строка заключена в круглые скобки. Это значение называется аргументом, или параметром функции.

Функция date()

Аргумент, передаваемый в функцию date(), должен быть строкой формата, задающей требуемый стиль вывода. Каждая буква в строке представляет часть строки даты и времени. Н представляет часы в 12-часовом формате, i - минуты с ведущим нулём, когда требуется, j - день месяца без ведущего нуля, S предствавляет обычный суффикс, а F - год, предствавленный четырьмя цифрами. (Полный список форматов, поддерживаемых функцией date(), приводиться в "Заключении").

Доступ к переменным формы

Весь смысл использования формы заказа заключается в получении информации о заказе клиента. Получение подробной информации о том, что ввёл клиент, реализуется в PHP очень просто.

Внутри PHP-сценария к каждому из полей формы можно получить доступ как к переменной, имеющей то же имя, что и у поля формы. Давайте рассмотрим пример.

Добавьте следующие строки в нижнюю часть PHP-сценария:


echo "<p>Ваш заказ был таковым:";
echo "<br>";
echo $cdr." CDR-диск(ов)<br>";
echo $cdrw." CDRW-диск(ов)<br>";
echo $fut." футляр(ов)<br>";
После обновления окна браузера вывод сценария должен выглядеть подобно показанному рисунку 1.4. Конечно же, фактические значения будут зависеть от того, что введено в форму.

Несколько примечательных особенностей этого примера описываются в следующих подразделах.

Переменные формы

В конечном счёте данные из сценария попадают в PHP-переменные. Имена переменных в PHP легко узнать, поскольку все они начинаются с символа доллара($). (Пропуск символа доллара - ещё одна распространённая ошибка программирования). Существуют два способа доступа к данным формы через переменные.

В этом примере для ссылки на переменные формы используется сокращённый стиль. При использовании этого стиля можно, например, просто начать работу с переменной, скажем, $CDR, как и было сделано перед этим.

Второй стиль заключается в получении переменных формы через один из 2-х массивов, хранящихся в переменных $HTTP_POST_VARS и $HTTP_GET_VARS. Один из этих массивов будет содержать подробную информацию о всех переменных формы. Выбор используемого массива зависит от метода отправки формы: POST или GET.

В рамках этого стиля для доступа к данным, введённым в поле формы CDR в предыдущем примере, следовало бы использовать выражение $HTTP_POST_VARS["cdr"]

Сокращённый стиль можно применять только при установке в значении "On" директивы register_globals в файле php.ini. Это - настройка по умолчанию в стандартном файле php.ini.

Оба эти метода аналогичны методам, используемых в других языках создания сценариев, например, Perl, и могут выглядеть знакомо.

Несложно было заметить, что на этом этапе не проверяется содержимое переменных на предмет корректного ввода важных данных в каждом из полей формы. Попытайтесь ввести заведомо неверные данные и посмотрите, что при этом произойдёт.

Конкатенация строк

В сценарии оператор echo применялся для вывода значений, введённых пользователемв каждом из полей формы, за которыми следовал некоторый пояснительный текст. Если внимательно присмотреться к операторам echo, можно заметить, что между именем переменнойи следующим за ним текстом содержится точка(.), например:

echo $CDR. " CDR-диск(ов)<br>";

Это операция конкатенации строк, которая используется для объединения строк(фрагментов текста). Она будет часто применяться при пересылке вывода в браузер с помощью оператора echo. Эта операция позволяет избегать записи нескоьких команд echo.
Иначе можно бывло бы записать так:

echo "$CDR CDR-диск(ов)<br>";

Этот оператор эквивалентен первому. Оба формата допустимы и использование каждого из них - личное предпочтение каждого.

Переменные и литералы

Переменные и строки, объединяемые в каждом из операторов echo, - по сути различные понятия. Переменные - это символыы(обозначения) для данных. Строки же - это собственно данные. Фрагмент неструктурированных данных в программе наподобие рассматриваемой называется литералом, в отличие от переменной. $CDR - это переменная, т.е. символ, который представляет введённые клиентом данные. С другой стороны, " CDR" - это литерал. Он принимается так, как выглядит.

Фактически, в PHP существуют два вида строк - с двойными кавычками и одинарными кавычками. PHP будет пытаться оценить строки, заключённые в двойные кавычки, что приводит к поведению, которое наблюдалось ранее. Строки, заключённые в одинарные кавычки, будут обрабатываться, как истинные литералы.

Источник: web-brodilka.ru
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
nurbol

8 октября 2009 17:56

Информация к комментарию
  • Группа: Активисты
  • ICQ: {icq}
  • Регистрация: 21.08.2009
  • Публикаций: 4
  • Комментариев: 2
У меня цифров не выводят((((

вот так:

Продажа CD
Результаты заказа:
Ваш заказ был принят в 11:56, 8th October

Ваш заказ был таковым:
CDR-диск(ов)
CDRW-диск(ов)
футляр(ов

--------------------

Tair

9 июня 2010 11:26

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Публикаций: 0
  • Комментариев: 0
nurbol,
на локальной машине работаешь? если да то прочитай вот это:
Переменные формы

В конечном счёте данные из сценария попадают в PHP-переменные. Имена переменных в PHP легко узнать, поскольку все они начинаются с символа доллара($). (Пропуск символа доллара - ещё одна распространённая ошибка программирования). Существуют два способа доступа к данным формы через переменные.

В этом примере для ссылки на переменные формы используется сокращённый стиль. При использовании этого стиля можно, например, просто начать работу с переменной, скажем, $CDR, как и было сделано перед этим.

Второй стиль заключается в получении переменных формы через один из 2-х массивов, хранящихся в переменных $HTTP_POST_VARS и $HTTP_GET_VARS. Один из этих массивов будет содержать подробную информацию о всех переменных формы. Выбор используемого массива зависит от метода отправки формы: POST или GET.

В рамках этого стиля для доступа к данным, введённым в поле формы CDR в предыдущем примере, следовало бы использовать выражение $HTTP_POST_VARS["cdr"]

Сокращённый стиль можно применять только при установке в значении "On" директивы register_globals в файле php.ini. Это - настройка по умолчанию в стандартном файле php.ini.

Оба эти метода аналогичны методам, используемых в других языках создания сценариев, например, Perl, и могут выглядеть знакомо.

Несложно было заметить, что на этом этапе не проверяется содержимое переменных на предмет корректного ввода важных данных в каждом из полей формы. Попытайтесь ввести заведомо неверные данные и посмотрите, что при этом произойдёт.

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.