Ваш первый Сайт С использованием РНР-скриптов

ОБРАБОТКА ЗАКАЗА ОТ ПОСЕТИТЕЛЯ МАГАЗИНА

Теперь осталось нам написать код для страницы magazin2.php. Этот код, как я уже отмечал, обрабатывает заказ и данные от посетителя, выводит их в окно браузера (см. рис. 9.3) и отправляет их вам по указанному вами элек­тронному адресу.

В РНР-редакторе создайте новый файл и сохраните его в папке magazin Под названием magazin2.php. Наберите код, как в листинге 9.4.

Листинг 9.4 (файл Magazin2.php) <Html> <Head>

<title>3anpoc</title> </head> <body> <?php

$n=$_POST['kor];

Sim j a=strip_tags($_POST [' i m j a' J);

$email=strip_tags($_POST|'emair]);

$text=strip_tags($_POST [ 'text' ]);

$zakaz="";

For ($i=l; $i<=$n; $i++) {

If($_PC)ST['kniga$ij>0) {

$zakaz="$zakazM. $_POST['avtor'.$i]." (',.$_POSTl'nazvanie,.$i].")-

,,.$_POST['kniga,.$i]." Шт<Ьг>"; }

}

$zakaz=MПоступил заказ: $zakaz<br> от клиента: $imja <br> Электронный адрес клиента: $email <br>

Адрес и контактные данные клиента: $textM; echo "$zakaz<br>";

Echo "<div id=lolo3>3AHBKa отправлена. Благодарим за 3AKa3!</div>"; mail("Interstrog@narod. ru", "Заказ на товар", $zakaz, "From: $emaiInReply-To:

$emailnContent-Type: text/plain; charset=windows-1251");

?>

</body> </html>

Разберем некоторые строчки кода: < ?php

$n=$_POST['kol'J; - все данные из формы, переданные из программы Magazin.php, будут храниться в суперглобальном массиве $_POST. Перемен­ной $п присваиваем общее число различных книг, т. е. общее число товаров в магазине. Помните, в прошлой программе magazin.php мы - создавали скры­тое поле с именем name=kol. В этом поле мы и передали на эту страницу (magazin2.php) общее число товаров в магазине;

$imja=striptags($_POST['imja'J); - аналогично переменной Simja присваива­ем введенное посетителем имя в текстовом поле формы в программе maga­zin.php. Имя обрабатываем функцией strip Jags, которая удаляет все теги, ес­ли они были введены посетителем. Это, как вы уже догадались, делается для безопасности, чтобы какой-нибудь злоумышленник не ввел вместо имени вредоносный код;

$email=striptags($_POST['emai/']); - переменной $етаИ присваиваем вве­денный посетителем E-mail;

$text=striptags($_POST['text']); - переменной $text присваиваем введенный посетителем домашний адрес;

$zakaz=""; - в эту переменную мы будем записывать строку с заказом и дан­ными посетителя (покупателя книг). Пока она у нас пуста;

For ($i=l; $i<=$n; $i++) - создаем цикл со счетчиком $i, принимающий зна­чения от 1 до $п, где $п - общее число товаров (различных книг) в магазине.

Для лучшего понимания рассмотрим работу этого цикла при $i=l И

If($ POST ['kniga' ,$i]>0) - в прошлом листинге (9.3) именем пате='kniga/' мы назвали элемент формы - раскрывающийся список для первой книги. Эле­мент суперглобального массива $_POST['kniga 1'] будет содержать значение параметра value раскрывающегося списка. Если количество экземпляров пер­вой книги пасегитель оставит равным нулю (valiie=0), то будет считаться, что эта книга просто не была им выбрана, и код в фигурных скобках под номером 2 не выполнится (действительно, зачем нам указывать, что та или иная книга была заказана в количестве ноль экземпляров). Если первая книга была вы­брана (мы пока рассматриваем исполнение условия if при $i=J), т. е. пара­метр value>0, го код между фигурными скобками под номером 2 выполнит­ся; 2{

$zakaz="$zakaz". $ POST['avtor'.$i]. " (".$_POST['nazvanie'.$i]. ")-

".$ POST['kniga'.$i]." Шт<Ьг>"; - формируем строку, куда запишем автора выбранной первой книги, фамилия которого содержится в элементе массива $ POST ['avtor Г] (именем name=avtorl мы назвали скрытое поле в листинге 9.3 и передали с его помощью на эту страницу значение value='$avtor[l]'), Название книги ($_POST'['nazvanieГ]) и количество выбранных экземпляров первой книги {$ POST ['kniga 1']). Все это мы записываем в одну строку, со­единив данные о книге точкой (метод конкатенации). Круглые скобки и де­фис обязательно заключаем в двойные кавычки;

1} - цикл for при 5/=/ (для первой книги) выполнен. Далее этот цикл снова начнет выполняться для второй книги ($i=2), если, конечно, она была выбра­на (количество экземпляров не равно нулю) и т. д. После того, как будут пе­ребраны все книги магазина, цикл полностью завершится, а в переменной $zakaz будет несколько строк с данными о всех выбранных книгах; $zakaz= "Поступил заказ: $zakaz<br> От клиента: $imja <br> Электронный адрес клиента: Semail <br>

Адрес и контактные данные клиента: $text"; - добавляем в переменную $za- kaz имя посетителя, которое он указал в форме magazin.php (листинг 9.3), его электронный адрес и домашний адрес;

Echo "$zakaz<br>"; - выводим все содержимое переменной Szakaz в браузер;

Echo "<div id=lolo3>Заявка отправлена. Благодарим за заказ!</div>"; - вы­водим в браузер строку с благодарностью за заказ;

Mail("Interstrog@narod. ru", "Заказ на товар", $zakaz, "From: $emailnReply- То: $emailnContent-Type: text/plain; charset=windows-l251"); - функция mail Отправит данные заказа и данные посетителя на ваш E-mail (эта функция ра­зобрана в разд. 9.1). Вместо Interstrog@narod. ru Подставите свой электрон­ный адрес.

Протестируем наш магазин. Для начала в редакторе запустите программу Admin.php (листинг 9.2 и рис. 9.4). Закачайте несколько книг и каких-нибудь фотографий к ним, как мы делали после разбора листинга 9.2. Теперь попро­буйте заказать какие-нибудь книги. Запустите в РНР-редакторе программу Magazin.php (листинг 9.3 и рис. 9.1). Если все программы вы написали пра­вильно, то в магазине вы увидите названия и авторов всех введенных вами книг. Выберите один или несколько экземпляров любых книг. Заполните по­ля для имени и адреса посетителя и нажмите кнопку «Заказать». Вы попаде­те на страницу magazin2.php, где увидите текст, примерно как на рис. 9.3. Ес­ли это так, то вы все сделали правильно. Внизу вы еще увидите строку ошиб­ки, примерно следующего содержания:

Warning: Таil()[function mail]: Failed to connect... и т. д. Функция mail не сработала, и это понятно, мы же тестируем программу на локальном компью­тере с локальным сервером. Эта функция будет работать только на сервере вашего хостинг-провайдера, где вы будете размещать свой сайт.

Ну вот, простой электронный магазин готов. Вам приходит по электрон­ной почте заказ, и вы отправляете его наложным платежом заказчику. Все просто, но можно сделать еще проще. Например, продавать книги в элек­тронном виде, которые заказчик может скачать себе на компьютер после оп­латы. У вас, например, есть электронный счет (об этом в гл. 10). На вашем сайте есть электронные товары (книги, музыка, программы и т. п.) и вы хоти­те, чтобы посетитель мог скачать какой-либо электронный товар только то­гда, когда положит на ваш электронный счет определенную сумму денег. Все это вполне реализуемо, причем купля-продажа будет делаться без вашего участия. Как только покупатель перечислит деньги на ваш счет, он автомати­чески переходит на страницу для скачивания электронного товара. В гл. 10 я объясню, как организовать торговлю электронными товарами на вашем сайте.

Ваш первый Сайт С использованием РНР-скриптов

Создание сайта

Итак, при помощи данной книги вы создали сайт. Конечно, сайт в таком виде не очень привлекателен, так как он создавался исключительно для при­мера. Но используя полученные знания в этой книге, …

ИСПОЛЬЗОВАНИЕ СЕРВИСА ROBOXCHANGE ДЛЯ ОПЛАТЫ

Если у вас нет никакой возможности получить персональный аттестат, или просто лень это делать, то для оплаты товаров со своего сайта вы можете воспользоваться сервисом Roboxchange. Этот сервис дает возможность …

ИСПОЛЬЗОВАНИЕ СЕРВИСА WEB MERCHANT INTERFACE ДЛЯ ОПЛАТЫ

Сервис Web Merchant Interface позволяет получать денежные средства на свои электронные кошельки от клиентов при оплате ими электронных товаров на вашем сайте. Электронные кошельки WebMoney и Yandex мы с вами …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.