Сложно представить любой современный сайт без формы обратной связи. Будь то лендинг, магазин или просто блог: без стандартной формы для отправки сообщений не обойтись. Во всех системах управления есть плагины, которые могут сделать даже очень сложную форму с любым набором полей. Но, если вы не хотите грузить свой ресурс лишним плагином, или у вас самописный сайт, то тогда вам подойдет этот php скрипт формы, который может отправлять на почту email и сообщение пользователя. При необходимости в форму можно быстро добавить любые поля (имя, фамилия и пр.) и организовать их отправку на email. Сама форма состоит из двух файлов: index.php с разметкой формы, и обработчика mail.php, который отправляет письмо с данными на указанный эл. адрес.
Создайте в корне сайта файл 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>
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>, то эти символы преобразуются в <b>, что позволяет предотвратить выполнение через браузер HTML-кода и различных скриптов.
setInterval(function(){ document.location.replace("index.php"); }, 3000);
</script>
Как передавать сообщения из формы еще и в телеграм, можно прочитать здесь.