Улучшаем обработчик формы обратной связи
Обновленный обработчик формы обратной связи >>>
Как-то я уже писал о том, как создать форму обратной связи на РНР. Ознакомиться со статьей можно здесь.
Сегодня я решил показать как ее можно усовершенствовать. А именно: добавить проверку на заполнение всех полей и правильность ввода email-адреса.
Мы будет изменять код самого обработчика send.php, который мы создали раньше. И выглядеть он должен следующим образом:
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
if ($name == '') unset($name);
}
if (isset($_POST['email'])) {
$email = $_POST['email'];
if ($email == '') unset($email);
}
if (isset($_POST['message'])) {
$message = $_POST['message'];
if ($message == '') unset($message);
}
/* Проверяем заполнены ли все поля */
if (isset($name) && isset($email) && isset($message)) {
/* Убираем все лишние пробелы и переносы строк, а также преобразуем все теги HTML в символы*/
$name = htmlspecialchars(trim($name));
$email = htmlspecialchars(trim($email));
$message = htmlspecialchars(trim($message));
/* Проверяем правильность ввода email-адреса */
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)){
echo "Неправильный формат e-mail адреса!";
}
else{
/* Формируем сообщение */
$address = "email@example.ru";
$sub = "Сообщение с моего нового сайта!!!";
$mes = "Автор назвался: $name \nОставил такой E-mail: $email \nСодержание письма: \n$message";
/* Отправка сообщения */
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true'){
echo "Сообщение отправлено!";
}
else {
echo "Сообщение не отправлено!";
}
}
}
else{
echo "Вы заполнили не все поля!";
}
?>
Хотелось бы добавить пару комментариев по проделанной работе.
Итак, в этой обработчике мы задействовали несколько новых функций:
isset() – проверяет существует ли переменная. Возвращает TRUE, если переменная существует; иначе FALSE.
preg_match() - выполняет подстановку регулярного выражения. Регулярные выражения это отдельная, довольно таки сложная тема, останавливаться на которой я не буду.
trim() - убираем все лишние пробелы и переносы строк. Думаю здесь все понятно.
htmlspecialchars() - конвертирует специальные символы в мнемоники HTML. Некоторые символы имеют в HTML специальное значение и должны быть представлены мнемониками HTML для сохранения своего значения. Эта функция возвращает строку с выполненной конвертацией. А именно:
- '&' (амперсанд) становится '&'
- '"' (double quote) становится '"' когда ENT_NOQUOTES не установлен
- ''' (single quote) становится ''', только когда установлен ENT_QUOTES.
- '<' (less than) становится '<'
- '>' (greater than) становится '>'
Если что-то не понятно, пишите в комментариях. Будем разбираться!
Также рекомендую посмотреть мой скрипт "Мастер создания форм".
Данный скрипт может создавать 4 типа форм, для Вашего сайта:
- Форма обратной связи;
- Форма для проведения опросов или анкет;
- Форма для голосования на сайт;
- Форма любой сложности.
Чтобы получить демонстрационную версию этого скрипта, заполните форму, которая находится ниже:

|
Введите свое имя и основной e-mail адрес в форму, после чего нажмите на кнопку подписки. Бесплатная версия скрипта будет выслан на указанный вами адрес в течение нескольких минут.
|
Более детальную информацию о скрипе, читайте на официальном сайте здесь!
-
Комментарии (38)
- Сайт
Facebook
Подписка
Подпишитесь прямо сейчас на почтовую рассылку:
"Новичку Инфо-Бизнеса.
От Простого К Сложному"
и получайте каждую неделю на свой электронный адрес список новых статей, опубликованных на страницах этого проекта.

20658


