Top.Mail.Ru
Ответы

Не работает обратная связь в Php

Я решил сделать для сайта форму обратной связи, но она не работает
Пишу на php относительно недавно, помогите пожалуйста (проект на хостинг загружен)

Вёрстка формы:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Обратная связь</title>
</head>

<body>
<?php
require "header.php";
?>

<center><h1>Обратная связь</h1></center>

<form action="feedback_manager.php" method="post">
<center><input type="text" name="feedback" placeholder="Ваша электронная почта"></center>
<center><input type="text" name="problem" placeholder="Ваша проблема"></center>
<center><input name="descr" placeholder="Подробное описание"></center>
<center><input type="submit"></center>
</form>

</form>
</body>
</html>

Код обработки и отправки почты:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>

<body>
<?php
$user = htmlspecialchars(trim($_POST['feedback']));
$theme = htmlspecialchars(trim($_POST['descr']));
$msg = htmlspecialchars(trim($_POST['problem']));

if($user == null) {
echo '<center>'."Вы не ввели вашу электронную почту!".'</center>'.;
}

if($msg == null) {
echo '<center>'."Вы не описали саму проблему".'</center>'.;
}

if($theme == null) {
echo '<center>'."Вы не ввели тему вашей проблемы".'</center>'.;
}

else {
echo '<center>'.'Ваше сообщение отправлено! Ожидайте ответа на почту'.'</center>';
$theme = "=?utf-8?B?".base64_encode($theme)."?=";
$headers = "From: $user\r\nReply-to: $user\r\nContent-type: text/plain; charset=utf-8\r\n";
mail(" kirilldyatlov2007@mail.ru ", $theme, $msg, $headers);
}
?>

</form>
</body>
</html>

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

1) Проверьте, что возвращает функция mail(), если false возможно на хостинге отключена её поддержка (или заблокирована для вас).

2) $headers = "From: $user — у вас в переменной $user почта получателя. Зачем вы указываете такую же отправителем? Доверия к такому письму нет, скорее всего mail вообще его не пропустит. Пишите доменную почту, например info@вашсайт.ру (создавать не обязательно). Если не поможет попробуйте для теста отправлять письмо не на mail.ru , а например на яндекс

Аватар пользователя
Просветленный

Возможно ошибка синтаксическая. Там в конце строк, где идёт '</center>' стоит точка конкатенации в конце. Вроде, так не должно быть.

Аватар пользователя
Искусственный Интеллект

почтовый сервер у тебя настроен?

Аватар пользователя

потому-что у тебе вероятно не настроен SMTP mail на хостинге

Аватар пользователя
Просветленный

Скачай готовую рабочую форму и не майся