www.seomark.ru
Обзоры интересных и полезных программ, фотография, радио, веб-дизайн и т.д. и т.п. и др. и пр.

Веб-дизайн и поисковая оптимизация

Логотип Софт

Создание формы обратной связи

Простая форма обратной связи с проверкой введенных данных

В предыдущих статьях было рассмотрено создание формы обратной связи и проверка её заполнения посетителем сайта с помощью JavaScript. Примеры форм были достаточно простые, однако, в некоторых случаях, они не позволяли исключить отправку пустых писем при нажатии кнопки Отправить сообщение.

Чтобы полностью исключить пустые письма, необходимо проверять их на сервере перед отправкой на ваш почтовый адрес.

Вернемся к нашей форме обратной связи. Её внешний вид и HTML-код оставим прежним (см. "Создание формы обратной связи"):

Ваше имя:

Ваш e-mail (для ответа):

Ваше сообщение:

Для того, чтобы исключить получение пустых сообщений с формы обратной связи, нужно добавить простейшую проверку заполнения полей, слегка усложнив страничку mail.php (описание этой страницы смотрите в той же статье "Создание формы обратной связи на сайте"). Для наших целей вполне достаточно проверить только "наличие отсутствия" любых знаков в полях Имя, Адрес и Сообщение. Если хотя бы одно из этих полей пустое (empty), то отправки письма не происходит, и программа должна вывести соответствующее предупреждение.

Для этого в РНР-программе последовательно проверим поля ввода с помощью конструкции if (если). Если поле пустое (empty), то выводим надпись со ссылкой для возврата на страницу с формой (для примера, её имя contacts.html). В противном случае выходим из программы (exit). Таким образом, проверка ввода имени выглядит так:

if (empty($name))
{
echo "<b>Не указано имя!<p>";
echo "<a href=contacts.html>Вернуться к заполнению формы</a>";
exit;
}

Затем выполняется выход из программы.

Если же поле ввода содержит любые знаки, то переходим к проверке следующего поля. Если все нужные поля заполнены, то отправляем письмо.

Полный рабочий код РНР-страницы с проверкой ввода данных приведен ниже:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<title>Обратная связь</title>
</head>
<body>
<?php
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['mess'])) {$mess = $_POST['mess'];}

if (empty($name))
{
echo "<b>Не указано имя!<p>";
echo "<a href=contacts.html>Вернуться к заполнению формы</a>";
exit;
}
else
if (empty($email))
{
echo "<b>Не указан e-mail!<p>";
echo "<a href=contacts.html>Вернуться к заполнению формы</a>";
exit;
}
else
if (empty($mess))
{
echo "<b>Сообщение не написано!<p>";
echo "<a href=contacts.html>Вернуться к заполнению формы</a>";
exit;
}
else
$to = "pupkin@rambler.ru"; /*Укажите ваш адрес электоронной почты*/
$headers = "Content-type: text/plain; charset = windows-1251";
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";
$send = mail ($to, $subject, $message, $headers);
if ($send == 'true')
{
echo "<b>Спасибо за отправку вашего сообщения!<p>";
echo "<a href=index.html>Нажмите,</a> чтобы вернуться на главную страницу";
}
else
{
echo "<p><b>Ошибка. Сообщение не отправлено!";
}
?>
</body>
</html>

Как видим, в данном примере проверяется просто наличие ввода любых данных в поля формы. Например, конструкция if (empty($name)) проверяет ввод имени. В случае пустого поля выводится указание на возврат к заполнению формы. Аналогично проверяются другие поля ввода.

Как и раньше, при размещении формы на сайте не забудьте указать свой адрес электронной почты и заменить a href=contacts.html , если ваша страница с формой обратной связи называется не contacts.html.

Иногда на сайте одна и та же форма обратной связи присутствует на нескольких страницах. В этом случае удобнее возвращать посетителя на ту страницу, где он заполнял форму, то есть организовать возврат на одну страницу назад. Для этого достаточно заменить строки со ссылкой на следующую конструкцию javascript:
echo "<a href='javascript:history.go(-1)'>Вернитесь к заполнению формы</a>";

Кроме описанных проверок ввода полей формы обратной связи, желательно обеспечить защиту от спама. Простейшие способы, как это сделать, рассмотрены в статьях "Форма обратной связи и спам в почте" и "Капча в форме обратной связи".

17.12.2009 г.

Далее - Проверка формы обратной связи "на лету"

Задать вопрос автору





Яндекс.Метрика

Copyright © 2008 - Марк Розенталь e-mail: Мой e-mail
Перепечатка материалов сайта разрешается при условии сохранения имени автора и гиперссылки на www.seomark.ru
Ключевые слова: отправка письма с сайта, отправка e-mail с сайта, форма обратной связи, скрипт формы обратной связи