Отправка заказа
Итак, в любом месте файла-обработчика формы, но лучше всего в начале, следует поместить следующий сценарий:
<?php $zak=""; (В эту переменную будем последовательно собирать названия заказанных товаров.) if ($TOV1>0){$zak="$zak Название товара 1 – $TOV1 шт.\n"; } if ($TOV2>0){$zak="$zak Название товара 2 – $TOV2 шт.\n"; } …
И такие же строчки – для каждого товара. В качестве имени переменной в условной части блока if ($… >0) указывается значение параметра пате соответствующего тэга <select…>, а в последующих фигурных скобках – название того товара, к которому этот тэг относился на странице-витрине. В результате в том случае, если посетитель изменил значение какого-либо выпадающего списка на число, отличное от нуля, то в переменную Szak, которая впоследствии станет текстом отправляемого письма, включается название товара, соответствующего этому выпадающему списку, и сведения о количестве его заказанных единиц – та величина, которая в конце концов и оказалась значением этого выпадающего списка.
Теперь завершим составление текста письма:
$zak="C адреса $email от заказчика с контактными данными $contact пришла заявка на приобретение товара: \n$zak";
…и отправим письмо-заявку:
mail ("электронный адрес владельца сайта", "Заказ на товар", $zak, "From: $email\nReply-To: $email\nContent-Type: text/plain; charset=windows-12 51");?>
В результате выполнения этой команды тот, кто обрабатывает заказы, получит аккуратный список заказанных товаров и сведения о заказчике (см. рис. 5.5). Причем если посетитель правильно ввел свой е-mail, то для связи с ним после получения письма достаточно нажать кнопку "Ответить" или ей подобную в почтовом клиенте – этот e-mail подставляется в заголовок письма From:.
Письмо будет отправлено через почтовую программу, находящуюся на сервере – программы на компьютере посетителя никак не будут затронуты.
Сам же файл, в котором размещен код отправки письма, может содержать, скажем, благодарность посетителю за заказ – рис. 5.6 или сведения о том, куда обращаться за информацией об этапе его выполнения. HTML-код страницы просто помещается вслед за окончанием сценария на РНР и выводится в браузер после окончания работы сценария.
Рис. 5.6. Заказ сделан – можно уходить и ждать…
В приведенном сценарии вместо одноименных элементов формы переменных можно использовать и соответствующие элементы массивов $HTTP_POST_VARS и (в РНР версии старше 4.1) SPOST. Например, строка добавления в текст заказа нового товара будет выглядеть как:
if ($HTTP_POST_VARS['TOV1']>0){$zak="$zak Название товара 1 – ".$HTTP_POST_VARS['TOV1']." шт.\n"; }
…строка генерации письма – как:
$zak="C адреса ".$HTTP_POST_VARS['email']. " от заказчика с контактными данными ".$HTTP_POST_VARS['contact']." пришла заявка на приобретение товара:\n$zak";
…и команда отправки письма – измененная по тому же принципу.