Форма обратной связи на php

6113

Сложно представить любой современный сайт без формы обратной связи. Будь то лендинг, магазин или просто блог: без стандартной формы для отправки сообщений не обойтись. Во всех системах управления есть плагины, которые могут сделать даже очень сложную форму с любым набором полей. Но, если вы не хотите грузить свой ресурс лишним плагином, или у вас самописный сайт, то тогда вам подойдет этот php скрипт формы, который может отправлять на почту email и сообщение пользователя. При необходимости в форму можно быстро добавить любые поля (имя, фамилия и пр.) и организовать их отправку на email. Сама форма состоит из двух файлов: index.php с разметкой формы, и обработчика mail.php, который отправляет письмо с данными на указанный эл. адрес.

1

Создайте в корне сайта файл index.php c таким содержимым, или поместите html - разметку формы на страницу вашего сайта:

<form action="mail.php" method="POST">
<input id="email" type="email" name="email" placeholder="Ваш эл. адрес" required="">
<textarea id="text" name="text" placeholder="Текст сообщения" required=""></textarea>
<button type="submit" class="send">Отправить</button>
</form>

2
В этой же директории на сервере создайте файл - обработчик формы mail.php с таким кодом:

<?php header('Content-type: text/html; charset=utf-8'); // задаем кодировку
if (!empty($_POST['email']) && (!empty($_POST['text']))) { //проверяем поля на пустоту
$to = "pochta@mail.ru" ; // куда отправляем письмо
$mail = 'Почта: '.$_POST['email']. PHP_EOL; // получаем данные из формы
$text='Сообщение:' .$_POST['text']; // получаем данные из формы
$message=$mail. htmlentities($text); // формируем сообщение
$subject = "Письмо с сайта"; // тема письма
mail($to, $subject, $message); // отправка письма
echo "Письмо отправлено!"; // сообщение при отправке
} else {
echo "Заполните все поля"; // сообщение при ошибке
}
?>
//скрипт редиректа при отправке
<script type="text/javascript">
setInterval(function(){ document.location.replace("index.php"); }, 3000);
</script>

Функция htmlentities преобразует все вводимые в поле символы в соответствующие HTML-сущности. Т. е. если ввести в текстовое поле <b>,  то эти символы преобразуются в &lt;b&gt;, что позволяет предотвратить выполнение через браузер HTML-кода и различных скриптов.

3
Скрипт внизу формы
<script type="text/javascript">
setInterval(function(){ document.location.replace("index.php"); }, 3000);
</script>
показывает на 3 секунды сообщения об ошибке или отправке письма, после чего возвращает к странице формы. Если у вас адрес страницы с формой другой, то index.php необходимо заменить на ваш url.

Как передавать сообщения из формы еще и в телеграм, можно прочитать здесь.

php

Добавить комментарий

Ваш адрес email не будет опубликован.

*
code