ВНИМАНИЕ! Конкурс по программированию!

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

 
Информация к новости
 (голосов: 1)

Создание формы отзывов

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

После того, как директор нашей вымышленной фирмы установил цены на товары и сделал доступным возможность заказов дисков прямо на сайте, возникает следующая потребность: получить отзывы от клиентов. Для чего? Во-первых, чтобы узнать, какие недостатки присутствуют в этой системе: клиент должен иметь право высказать о своих неудобствах заказа товара. Во-вторых, у него могут возникнуть вопросы в заполнении формы (или в чём-либо другом). Ну и вообще: всем посетителям сайта необходимо дать право высказаться, если они этого хотят. Это высказывание (вопрос, пожелание) отправляются на электронный адрес администратора (директора) и после получения им письма он реагирует на него.

Данный сервис просто необходим: ни одна солидная компания не обходится без мнения своих покупателей. Как раз сегодня мы и займёмся этим интересным и полезным делом - созданием формы отзывов и вопросов.

В нашей форме будет присутствовать одна отличительная особенность от остальных подобных форм: возможность "умной" отправки письма. Т.е. в зависимость от того, какой текст ввёл посетитель в поле сообщения, письмо будет отсылаться соответствующему сотруднику компании. Например, если в сообщении будет обнаружено слово "Сотрудничество", то целесообразнее будет направить письмо не директору, а в отдел маркетинга или другим лицам.

Давайте уже перейдём к практике и напишем небольшой каркас нашей формы. Вот сама форма:
<form action="feedback.php" name="feedback">
<table align=center>
<tr>
  <td>Тема сообщения:</td>
  <td align=center><input type="text" name="subject" size=35 maxlength=50></td>
</tr>
<tr>
  <td>Ваш E-mail:</td>
  <td align=center><input type="text" name="fromadress" size=35 maxlength=40></td>
</tr>
<tr>
  <td>Ваше сообщение:</td>
  <td align=center><textarea rows=4 cols=26 name="mailcontent" maxlength=255></textarea></td>
</tr>
<tr>
  <td colspan=2 align=center><input type=submit value="Отправить" class="buttons"></td>
</tr>
</table>
</form>
А это php-скрипт, обрабатывающий эту форму:
<?php

$toadress = "direktor@cd-magazine-for-you.ru";
mail($toadress, $subject, $mailcontent);

?>
<html>
<head>
  <title>Письмо выслано!</title>
</head>
<body>
<h1>Письмо выслано!</h1><br>
<p>Ваше письмо успешно отправлено!</p>
</body>
</html>
Как Вы наверное поняли из вышеописанного кода, поля формы объединены, а РНР-функция mail() применяется для отправки их по электронной почте по адресу direktor@cd-magazine-for-you.ru. В общем случае функция mail() выглядит так:

bool mail(кому, тема, сообщение, [дополнительные параметры])

Первые три параметры обязательны, а четвёртый - нет.

Форматирование строк

Ваша задача, как программиста, обеспечить обработку всех вариантов вводимых данных: чтобы они выглядели корректно и не возникло проблем при отправки сообщения. Для этого, необходимо преобразовать введённый пользователем текст, к понятному компьютеру виду. В PHP существует для этого несколько функций. Первой, очень полезной функцией, является функция удаления лишних пробелов trim(), которая удаляет ненужные пробелы справа и слева. Вот пример её работы:

$name=trim($name);

Функция nl2br() принимает строку в качестве параметра и заменяет в ней все символы новой строки дескриптором <br> HTML. Это полезно при выводе длинной строки в окне браузера. Например, мы использовали эту функцию для форматирования отзыва клиента с целью вывода его на экране:

<? echo nl2br($mailcontent); ?>

До сих пор мы использовали языковую конструкцию echo для вывода строк в окне браузера. PHP поддерживает также функцию print и выполняет ту же задачу, что и echo, но поскольку она является функцией, то возвращает значение (0 или 1, в зависимости от успешности выполнения). Приведу два простых примера:

echo "Всего куплено дисков: $Total.";

и

printf ("Всего куплено дисков: %s.", $total);

Последовательность %s в строке формата называется спецификацией преобразования. Приведённая спецификация означает "заменить строкой". В данном случае она будет заменена значением переменной $total, интерпретируемым в качестве строки. Преимущество использования функции printf() в том, что можно использовать более удобную спецификацию преобразования для указания того, что в действительности $total - число с плавающей точкой и оно должно содержать два знака после десятичной точки, как показано в следующем примере:

printf("Всего куплено дисков: %f.", $total);

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *