Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ.РАБ.№3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
333.82 Кб
Скачать

2.3 Передача параметров по ссылке, передача параметров из формы.

Создайте файл test_form.html. Задайте на ней форму:

<form action="forma.php" method="get" >

<br>Сообщение:<br>

<input type="text" name="message">

<br>Имя:<br>

<input type="text" name="name">

<br><input type="submit" value="Обработать данные">

</form>

Создайте файл forma.php для обработки данных формы, который может выглядеть следующим образом:

<?php

echo "Привет, $_REQUEST[name]! <br>";

echo "Твое соообщение $_REQUEST[message].” <br>";

?>

Попробуйте изменить метод GET на метод POST, теперь значения переменных не должны передаваться в открытом виде.

Вместо элемента <input type="text" name="name"> определите на странице выпадающее меню, такое, как приведено ниже:

Измените работу скрипта таким образом, чтобы пользователь мог выбрать имя из списка, ввести приветствие, нажать кнопку "Обработать данные" и получить c помощью обработки переданной переменной в файл forma.php приветствие для выбранного имени.

Измените страницу с формой так, чтобы пользователь мог выбрать приветствие, нажав кнопку зависимой фиксации:

Привет Здравствуйте Рад Вас снова видеть Добрый день

Измените страницу с формой так, чтобы пользователь мог выбрать фон страницы (средство выбора — на Ваше усмотрение). Добавьте кнопку для очистки введенных данных.

2.4 Создание формы для обработки заказов электронного магазина

По разобранному примеру создания книжного магазина разработать форму для работы следующих магазинов (по указанию преподавателя):

  1. Магазин автозапчастей

  2. Мебельный магазин

  3. Магазин продуктовый

  4. Магазин игрушек

  5. Магазин бытовой техники

  6. Компьютерный магазин

  7. Аптека

  8. Магазин канцтоваров

Форму заказа для покупателей (orderform.html) книжного магазина можно представить следующим образом:

<html>

<head>

<title>КНИЖНЫЙ МАГАЗИН</title>

</head>

<body>

<h1> КНИЖНЫЙ МАГАЗИН </h1>

<h2>Форма заказа</h2>

<form action="processorder.php" method=post>

<table border=0>

<tr bgcolor=#cccccc>

<td width=150>Название</td>

<td width=15>Количество</td>

</tr>

<tr>

<td> Сказки Андерсона</td>

<td align=center><input type="text" name="scazki" size=3 maxlength=3></td>

</tr>

<tr>

<td> Стихи А.С.Пушкина</td>

<td align=center><input type="text" name="ctixi" size=3 maxlength=3></td>

</tr>

<tr>

<td> Журнал «Бизнес» </td>

<td align=center><input type="text" name="zurnal" size=3 maxlength=3></td>

</tr>

<tr>

<td colspan=2 align=center><input type=submit value="Отправить заказ"></td>

</tr>

</table>

</form>

</body>

</html>

Для обработки формы можно создать файл, аналогичный processorder.php:

<html>

<head>

<title>Книжный магазин – Результаты заказа</title>

</head>

<body>

<h1> КНИЖНЫЙ МАГАЗИН </h1>

<h2> РЕЗУЛЬТАТЫ ЗАКАЗА </h2>

<?

$scazki=$_REQUEST[scazki];

$ctixi =$_REQUEST[ctixi];

$zurnal =$_REQUEST[zurnal];

echo "<p>Заказ обработан ";

echo date("H:i, jS F");

echo "<br>";

echo "<p>Ваш заказ составил:";

echo "<br>";

echo $scazki." сказок Андерсона<br>";

echo $ctixi." Книг со стихами Пушкина<br>";

echo $zurnal." журналов<br>";

$totalqty = 0;

$totalamount = 0.00;

define("zena1", 100);

define("zena2", 10);

define("zena3", 4);

$totalqty = $scazki + $ctixi + $zurnal;

$totalamount = $scazki * zena1 + $ctixi * zena2 + $zurnal * zena3;

$totalamount = number_format($totalamount, 2);

echo "<br>\n";

echo "Всего заказано: ".$totalqty."<br>\n";

echo "На сумму: ".$totalamount."<br>\n";

$taxrate = 0.10; // Налог с продаж 10%

$totalamount = $totalamount * (1 + $taxrate);

$totalamount = number_format($totalamount, 2);

echo " С налогом с продаж: ".$totalamount."<br>\n";

?>

</body>

</html>

По аналогии придумайте и рассчитайте скидки на заказ в зависимости от количества и/или суммы покупки. Добавить в форму код, позволяющий получить информацию о том, какие формы рекламы лучше работают или что-то по смыслу вашей работы. Например:

<td>Как вы нас нашли</td>

<td><select name="find">

<option value = "a">Я регулярный покупатель

<option value = "b">По телевизору

<option value = "c">По телефонному справочнику

<option value = "d">Знакомые рассказали

</select>

</td>

Обработайте полученную информацию в файле processorder.php. Например:

switch($_REQUEST[find]) {

case "a" :

echo "<P>Регулярный покупатель.";

break;

case "b" :

echo "<P>Покупатель увидел рекламу о нас по телевизору.";

break;

case "c" :

echo "<P> Покупатель нашел нас по телефонному справочнику.";

break;

case "c" :

echo "<P>Покупатель узнал о нас от знакомых.";

break;

default :

echo "<P>Мы на знаем как нашел нас покупатель.";

break; }

Добавьте в форму таблицу стоимости доставки заказа в зависимости от расстояния:

<table border = 0 cellpadding = 3>

<tr>

<td bgcolor = "#CCCCCC" align = center>Расстояние</td>

<td bgcolor = "#CCCCCC" align = center>Стоимость</td>

</tr>

<?

$distance = 50;

while ($distance <= 250 ) {

echo "<tr>\n <td align = right>$distance</td>\n";

echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n";

$distance += 50;

}

?>

</table>

</body>

</html>

Добавьте в форму заказа запрос адреса клиента (город, улица, дом, квартира), заведите массив для хранения ближайших городов с расстояниями до них, вычислите в файле processorder.php стоимость доставки заказа клиенту.

Добавьте форму для обратной связи. Например:

html>

<head>

<title>КНИЖНЫЙ МАГАЗИН - ОБРАТНАЯ СВЯЗЬ</title>

</head>

<body>

<h1> ОБРАТНАЯ СВЯЗЬ </h1>

<p>Пожалуйста, выскажите свое мнение о нашем магазине.</p>

<form method=post action="processfeedback.php">

Ваше имя: <br>

<input type=text name="name" size=40><br>

Ваш электронный адрес: <br>

<input type=text name="email" size=40><br>

Ваше сообщение:<br>

<textarea name="feedback" rows=5 cols=30>

</textarea><br>

<input type=submit value="Отправить отзыв">

</form>

</body>

В файле processorder.php обработайте отзыв и отправьте благодарственное письмо покупателю за отзыв с помощью функции mail().Формат этой функции таков:

mail(string $email, string $subject, string $message [,string $haders]);

Для правильной настройкой системы нужно отредактировать секцию mail function файла конфигурации php.ini. В нем нужно указать имя SMTP-сервера. В функции mail() первым параметром задается адрес электронной почты получателя, а вторым параметром — тема, а третьим - само сообщение. Необязательный параметр Header содержит различные служебные заголовки письма. Самые необходимые заголовки:

♦ From — содержит имя и адрес отправителя;

♦ Reply-To — задает адрес для ответа;

♦ X-Mailer — позволяет указать название почтовой программы;

♦ Content-type — определяет тип содержимого;

♦ Content-Transfer-Encoding — сколько бит используется для передачи символа. Если вы планируете отправлять сообщения на русском языке, установите значение 8 bit.

Пример использования функции:

mail("ivan@ivanov.ru", "Благодарность", "Большое спасибо за внимание к нашему магазину …",

"From: knigmag@mail.ru \n ",

"Reply-to: knigmag@mail.ru \n",

"Content-Type: text/plain; charset=\"koi8-r\"\n",

"Content-Transfer-Encoding: 8bit");

C помощью заголовков Content-type и Content-Transfer-Encoding устанавливается кодировка K0I8-R, а также 8-битное коди­рование символов при передаче сообщения. Если не указать кодировку, то пользователь вместо русских букв увидит непонятные иероглифы, а если указать кодировку, но забыть указать параметр Content-Transfer-Encoding, то вместо русского текста он увидит так называемый транслитерационный tekst. Заголовок Content-type так­же указывает формат сообщения — text/plain.

Разработайте дизайн сайта, добавьте его в файлы в виде включения отдельного файла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]