Иллюстрированный самоучитель по PHP

Отправка заказа

После оформления заказа и нажатия посетителем кнопки отправки формы произойдет переход на страницу, указанную в заголовке этой формы (в рассматриваемом сценарии – zakaz.php). Именно в этом файле содержится программа отправки заказа.

При передаче формы сценарию на РНР содержимое каждого элемента переданной формы (для поля ввода текста – введенный текст, для элемента <select…> – значение параметра value выбранного пункта <орtion>) помещается в переменную, имя которой равно значению параметра пате данного элемента (Так происходит, если в файле pkp.mi установлен в on параметр register_globals). Кроме того, все эти значения помещаются в одноименные соответствующим значениям параметров пате элементы массива $HTTP_POST_VARS (если форма передана методом POST) или $HTTP_GET_VARS (если форма передана методом GET) (Так происходит, если в файле php.ini установлен в on параметр track_vars), а в РНР версии 4.1 и выше – еще и в массивы $_POST и $_GET соответственно. Например, значение элемента <select name="TOV1"> будет доступно сценариям на странице-обработчике в переменной $TOV1 и в элементе массива $HTTP_POST_VARS [ "TOV1' ] (а в РНР версии 4.1 и старше – еще и в элементе массива $_POST [ ' T0V1' ].

Однако особенностью использования этих массивов в частности является то, что для присоединения значения любого их элемента к какой-либо строковой переменной нельзя просто поместить их внутрь текста строки – нужно использовать оператор сложения строк: точку. Скажем, написать:

$zak="$zak $HTTP_POST_VARS['TOV1']";

…нельзя – надо использовать формат:

$zak="$zak "$HTTP_POST_VARS['TOV1'];

Отправка письма осуществляется командой mail, как вы помните, имеющей формат:

тай ("Кому", "Тема", "Текст сообщения", "Дополнительные заголовки");

При выполнении данной команды на сервере формируется электронное письмо в соответствии с указанными параметрами и отправляется с помощью установленной на web-сервере почтовой программы (Вы можете установить такую программу и на своем компьютере – используйте, например, Office Mail Server Юрия Кучуры (доступен с http://eu3eu.chat.ru) или Courier Mail Server Романа Ругаленко (доступен с http://courierms.narod.ru)).

В качестве параметра "Кому" может выступать набор адресов, разделенных запятыми.

"Дополнительные заголовки" могут быть любые из допустимых почтовыми протоколами, разделяться они должны комбинацией символов /n, которая в РНР означает перевод строки. Если среди "Дополнительных заголовков" не указано поле From, то оно заполняется по умолчанию почтовой программой, установленной на web-сервере, например, именем "Unprivileged User".

Для отправки письма с заказом необходимо приготовить его текст. Можно, конечно, просто включить в письмо значения всех переменных с именами, равными кодам товара (т. е. полученные из элементов <select…>), и в конец добавить контактные данные посетителя. Но куда как лучше, чтобы владелец web-сайта получал не набор кодов, которые он еще должен по своим данным перевести в названия, а уже готовый список заказанных посетителем товаров (рис. 5.5). Для этого в текст сценария включим блок определения полного названия товара по его коду.

Иллюстрированный самоучитель по PHP › Простейший интернет-магазин › Отправка заказа
Рис. 5.5. Письмо с заказом. Удобно читать – удобно выполнять

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.