Почему с формы обратной связи на почту хостинга приходит пустое письмо?

Ссылка скопирована
PHP
1 ответ

Здравствуйте! Загрузила на сайт главную страницу. Проверила форму, а на почту приходят пустые письма с нее.
Подскажите, пожалуйста, способы диагностики этой проблемы?
Или, если проблема очевидна, подскажите, как исправить?
Сайт:
antik88.ru

Код:

<section class="feedback">     <div class="container">         <h2 class="large-title .large-title_feedback">Есть вопросы?</h2>         <p class="mini-title .mini-title_feedback "> <a name="form"> Вы можете задать интересующий Вас вопрос,и наши специалисты ответят Вам в ближайшее время!</a></p>         <div class="about-form">             <form  action="#" id="form_body" class="form">                 <!-- Hidden Required Fields --> 		<input type="hidden" name="project_name" value="Antik-Salon_88"> 		<input type="hidden" name="admin_email" value="info@antik88.ru"> 		<input type="hidden" name="form_subject" value="Заявка с нижней формы"> 		<!-- END Hidden Required Fields -->                 <!-- <h1 class="form_title">Отправка данных на почту</h1> -->                 <input id="name" class="form_input" type="text" placeholder="Ваше имя*">                 <input id="email" class="form_input" type="email" placeholder="Ваш E-mail или телефон">                 <div class="input__wrapper">                     <input name="file" type="file" id="input__file" class="input input__file" multiple>                     <label for="input__file" class="input__file-button">                        <span class="input__file-icon-wrapper"><img class="input__file-icon" src="icons/upload.svg" alt="Выбрать файл" width="25"></span>                        <span class="input__file-button-text">Загрузите фото</span>                     </label>                  </div>                 <textarea id="for_message" class="form_textarea" placeholder="Ваш вопрос*"></textarea>                 <button class="form_btn" type="submit">Отправить</button>               </form>         </div>     </div> </section>

<section class="feedback"> <div class="container"> <h2 class="large-title .large-title_feedback">Есть вопросы?</h2> <p class="mini-title .mini-title_feedback "> <a name="form"> Вы можете задать интересующий Вас вопрос,и наши специалисты ответят Вам в ближайшее время!</a></p> <div class="about-form"> <form action="#" id="form_body" class="form"> <!-- Hidden Required Fields --> <input type="hidden" name="project_name" value="Antik-Salon_88"> <input type="hidden" name="admin_email" value="info@antik88.ru"> <input type="hidden" name="form_subject" value="Заявка с нижней формы"> <!-- END Hidden Required Fields --> <!-- <h1 class="form_title">Отправка данных на почту</h1> --> <input id="name" class="form_input" type="text" placeholder="Ваше имя*"> <input id="email" class="form_input" type="email" placeholder="Ваш E-mail или телефон"> <div class="input__wrapper"> <input name="file" type="file" id="input__file" class="input input__file" multiple> <label for="input__file" class="input__file-button"> <span class="input__file-icon-wrapper"><img class="input__file-icon" src="icons/upload.svg" alt="Выбрать файл" width="25"></span> <span class="input__file-button-text">Загрузите фото</span> </label> </div> <textarea id="for_message" class="form_textarea" placeholder="Ваш вопрос*"></textarea> <button class="form_btn" type="submit">Отправить</button> </form> </div> </div> </section>

<?php  $method = $_SERVER['REQUEST_METHOD'];  //Script Foreach $c = true; if ( $method === 'POST' ) {  	$project_name = trim($_POST["project_name"]); 	$admin_email  = trim($_POST["admin_email"]); 	$form_subject = trim($_POST["form_subject"]);  	foreach ( $_POST as $key => $value ) { 		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { 			$message .= " 			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " 				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> 				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> 			</tr> 			"; 		} 	} } else if ( $method === 'GET' ) {  	$project_name = trim($_GET["project_name"]); 	$admin_email  = trim($_GET["admin_email"]); 	$form_subject = trim($_GET["form_subject"]);  	foreach ( $_GET as $key => $value ) { 		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { 			$message .= " 			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " 				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> 				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> 			</tr> 			"; 		} 	} }  $message = "<table style='width: 100%;'>$message</table>";  function adopt($text) { 	return '=?UTF-8?B?'.Base64_encode($text).'?='; }  $headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL . 'Reply-To: '.$admin_email.'' . PHP_EOL;  mail($admin_email, adopt($form_subject), $message, $headers );

<?php $method = $_SERVER['REQUEST_METHOD']; //Script Foreach $c = true; if ( $method === 'POST' ) { $project_name = trim($_POST["project_name"]); $admin_email = trim($_POST["admin_email"]); $form_subject = trim($_POST["form_subject"]); foreach ( $_POST as $key => $value ) { if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> </tr> "; } } } else if ( $method === 'GET' ) { $project_name = trim($_GET["project_name"]); $admin_email = trim($_GET["admin_email"]); $form_subject = trim($_GET["form_subject"]); foreach ( $_GET as $key => $value ) { if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> </tr> "; } } } $message = "<table style='width: 100%;'>$message</table>"; function adopt($text) { return '=?UTF-8?B?'.Base64_encode($text).'?='; } $headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL . 'Reply-To: '.$admin_email.'' . PHP_EOL; mail($admin_email, adopt($form_subject), $message, $headers );

Почему с формы обратной связи на почту хостинга приходит пустое письмо?

Благодарю Вас заранее за ответ!

Дополнительно:

в самом начале напишите $message = 'Ничего нет';
Если в письме будет этот текст, то делайте выводы

  • навскидку
    согласно www.faqs.org/rfcs/rfc2822.html строки сообщения должны быть разделены символами CR LF (rn). Пункт 2.1.
    Вы используете PHP_EOL, который в линуксе равен только переводу строки, без возврата каретки (n).
    Используйте последовательность CRLF
    $headers = "MIME-Version: 1.0" . "rn" . "Content-Type: text/html; charset=utf-8" . "rn" .

    $headers = "MIME-Version: 1.0" . "rn" . "Content-Type: text/html; charset=utf-8" . "rn" .

    Я не гарантирую, что проблема в этом, просто это бросилось в глаза

  • Сергей delphinpro, это совсем пальцем в небо :) На уровне
    - Почему у меня пушка не стреляет? Вот все на месте, колеса, затвор, завязанный узлом ствол
    - Навскидку: у вас краска на щитке поцарапана
    ))))
  • Ипатьев, так и есть
  • Ипатьев, Сергей delphinpro, а ещё оба колеса спущены.

    Анна, у двух <input> и у одного <textarea> нет параметра name, вот совсем нет. И action у формы какой-то невнятный. Сделайте простейший var_dump($_POST);

  • AUser0, Вы простите меня за идиотский вопрос. Я не разбираюсь в php, код нашла в одном видео уроке. А какой должен быть параметр name? что в нем надо написать?
    Ну то есть вот так должно быть?
    &lt;textarea id="for_message" class="form_textarea" name= "что-то надо написать" placeholder="Ваш вопрос*"&gt;&lt;/textarea&gt;

    &lt;textarea id="for_message" class="form_textarea" name= "что-то надо написать" placeholder="Ваш вопрос*"&gt;&lt;/textarea&gt;

    Я пытаюсь во всем разобраться, к сожалению, шокируя публику своими вопросами)
    И про action. Вот так надо?

  • MrColdCoffee, написала, действительно ничего нет.
  • Давайте подумаем
    Вот вы пишете,
    <input type="hidden" name="project_name" value="Antik-Salon_88">
    а потом в РНР
    $_POST["project_name"]
    и вопроса, что писать в name здесь у вас не возникает.
    а двумя строчками ниже - вдруг полная остановка, что писать - непонятно.
  • Ипатьев, так ведь код - не её авторства, как я понимаю.
  • Анна, ещё момент, HTML-код <form action="#" ...> (то есть с "пустым" action, знак рещётки не в счёт) подразумевает, что данные из формы при её отправке (submit-е) будут передаваться НА ТОТ ЖЕ URL, с которого был получен HTML с этой формой. То есть загрузили форму с URL http://site.com/path/file.php - и отправка формы будет на этот же URL http://site.com/path/file.php. То есть обрабатывать форму будет тот же скрипт, который выдаёт её HTML. Но в приведённом скрипте отправки почтового сообщения не видно этой HTML формы. И вот непонятно, данные формы обрабатывает точно именно этот скрипт? Или может вся обработка делается в другом скрипте/файле, и вы смотрите/меняете не там где надо?
  • AUser0, Спасибо большое! я решила ради эксперимента посмотреть, что будет если ответить на письмо с формы. Получилась странная вещь, в поле "кому" указан емейл админки, хотя должен быть указан емейл, с которого пришло письмо, чтобы ответное письмо пришло человеку на почту. В чем тут может быть дело ?
    Еще я добавила project_name в инпут и отобразилось имя, которое вводит человек.
    &lt;input name="project_name" id="name" class="form_input" type="text" placeholder="Ваше имя*"&gt;

    &lt;input name="project_name" id="name" class="form_input" type="text" placeholder="Ваше имя*"&gt;

    но вот с textarea это не работает, если подставить name="project_name" в textarea, то текст сообщения выводится в месте, где должно быть имя человека, то есть вместо "письмо от Иван Иваныча" мы видим "оцените мой предмет", например. А поле для вывода самого текста сообщения так и остается пустым .

    Почему с формы обратной связи на почту хостинга приходит пустое письмо?

  • Анна, как я представляю, вам в двух этих INPUT и в TEXTAREA нужно id="..." поменять на name="...".

    Согласно тексту скрипта

    'From: '.adopt($project_name).' &lt;'.$admin_email.'&gt;'

    'From: '.adopt($project_name).' &lt;'.$admin_email.'&gt;'

    , письмо считается отправленным с адреса $admin_email, то есть с адреса

    &lt;input type="hidden" name="admin_email" value="info@antik88.ru"&gt;

    &lt;input type="hidden" name="admin_email" value="info@antik88.ru"&gt;

    . Поэтому и ответ идёт на этот info@antik88.ru, всё правильно.
    А отправить письмо с "From:" в виде чужого адреса - это можно упереться в систему анти-спама.

  • Анна, кстати, эта ваша форма обратной связи - опасная вещь. Поскольку вы вписали почтовый адрес получателя в саму HTML-форму, любой злоумышленник может этим воспользоваться. И начать отсылать письма с вашего IP на любые адреса (достаточно изменить адрес в <input type="hidden" name="admin_email" value="....">), с нужным ему SPAM-текстом в <textarea>.

    Не надо хранить/передавать e-mail в HTML-форме. Он должен быть жестко зашит в PHP-скрипте, невидим web-пользователям, и снаружи не изменяться.

  • AUser0, Спасибо большое! я, кажется, решила проблему! Вроде так должно быть? Благодарю Вас от всей души!

    Почему с формы обратной связи на почту хостинга приходит пустое письмо?

  • AUser0, ой, хорошо, что Вы сказали, я даже не подумала над этим. А как это сделать, если не секрет? Искать готовое решение или можно исправить этот код?
  • Анна, а e-mail адрес отправителя Ивана Иванова - всё равно админский?

    Ну и $admin_email переносите в скрипт, его не должно быть в HTML форме, вообще!

  • Анна, плюс ещё стоит перевести форму с method=get на method=post, так чуть-чуть более безопасно.
  • Анна, просто удалите строчки
    $admin_email = trim($_POST["admin_email"]);
    и
    $admin_email = trim($_GET["admin_email"]);

    А в начале скрипта сделайте:

    $method = $_SERVER['REQUEST_METHOD']; $admin_email  = "info@antik88.ru";

    $method = $_SERVER['REQUEST_METHOD']; $admin_email = "info@antik88.ru";

    Ну и из формы уберите

    &lt;input type="hidden" name="admin_email" value="info@antik88.ru"&gt;

    &lt;input type="hidden" name="admin_email" value="info@antik88.ru"&gt;

    тоже незачем адрес светить на весь Интернет.

  • AUser0, спасибо большое, буду разбираться. Тут проще, похоже вообще все убрать и заменить на другой код. Подскажите, пожалуйста, где мне взять шаблон post для отправки писем с формы? Может быть, есть готовые решения? Те, которые я пробовала, не работают. Согласна, это наглость, требовать готовых "рецептов", но выхода у меня нет: сайт, мне кажется, должен иметь форму, иначе он не выглядит серьезно)
  • AUser0, Вот прям даже не знаю, как Вас благодарить) Все работает, как надо))
    Осталось только сделать, чтобы файлы тоже отправлялись, но, думаю, экспериментальным путем исправлю это.
    Спасибо огромное Вам!)))
  • Все готовое - это такая же развесистая клюква как у вас сейчас, с кучей ненужного и непонятного.
    Сделайте простую форму из 4 строчек:
    - форма
    - текстария
    - кнопка submit
    - закрыть форму

    у текстарии должно быть имя, у сабмита - не нужно.
    после этого в РНР выведите массив $_POST и убедитесь что видите введенный текст.
    Если видите, то добавляйте код отправки этого текста на почту.

  • Ипатьев, благодарю Вас)
  • Та вы не благодарите,
    Вы сделайте, и задавайте вопросы по ходу дела
  • Ипатьев, сегодня пыталась понять, какая же часть кода отвечает за отправку вложений. в итоге решила добавить
    $file = "act.jpg";
    Мне показалось логичным это, и я добавила еще
    $fileRead = fopen($file, "r"); // открываем файл         $contentFile = fread($fileRead, filesize($file)); // считываем его до конца         fclose($fileRead); // закрываем файл         $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n";          $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла         $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn";         $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл         $bodyMail .= "--".$separator ."--n";

    $fileRead = fopen($file, "r"); // открываем файл $contentFile = fread($fileRead, filesize($file)); // считываем его до конца fclose($fileRead); // закрываем файл $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n"; $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn"; $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл $bodyMail .= "--".$separator ."--n";

    Письма приходят по прежнему без загруженных изображений. Возможно, это совсем не то, что нужно и без jquery тут не обойтись? Или все-таки можно найти походящий код? Если спросить проще, насколько я близка к решению проблемы отправки файлов вот с этим кодом?

    &lt;?php var_dump($_POST); $method = $_SERVER['REQUEST_METHOD']; $admin_email  = "info@antik88.ru"; $file = "act.jpg"; // файл //Script Foreach $c = true; if ( $method === 'POST' ) {  	$form_subject = trim($_POST["form_subject"]);  	foreach ( $_POST as $key =&gt; $value ) { 		if ( $value != "" &amp;&amp; $key != "project_name" &amp;&amp; $key != "admin_email" &amp;&amp; $key != "form_subject" ) { 			$message .= " 			" . ( ($c = !$c) ? '&lt;tr&gt;':'&lt;tr style="background-color: #f8f8f8;"&gt;' ) . " 				&lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;&lt;b&gt;$key&lt;/b&gt;&lt;/td&gt; 				&lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;$value&lt;/td&gt; 			&lt;/tr&gt; 			"; 		} 	} } else if ( $method === 'GET' ) {  	$project_name = trim($_GET["project_name"]); 	$admin_email  = trim($_GET["admin_email"]); 	$form_subject = trim($_GET["form_subject"]); 	 $fileRead = fopen($file, "r"); // открываем файл         $contentFile = fread($fileRead, filesize($file)); // считываем его до конца         fclose($fileRead); // закрываем файл         $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n";          $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла         $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn";         $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл         $bodyMail .= "--".$separator ."--n";  	foreach ( $_GET as $key =&gt; $value ) { 		if ( $value != "" &amp;&amp; $key != "project_name" &amp;&amp; $key != "admin_email" &amp;&amp; $key != "form_subject" ) { 			$message .= " 			" . ( ($c = !$c) ? '&lt;tr&gt;':'&lt;tr style="background-color: #f8f8f8;"&gt;' ) . " 				&lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;&lt;b&gt;$key&lt;/b&gt;&lt;/td&gt; 				&lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;$value&lt;/td&gt; 			&lt;/tr&gt; 			"; 		} 	} }  $message = "&lt;table style='width: 100%;'&gt;$message&lt;/table&gt;";  function adopt($text) { 	return '=?UTF-8?B?'.Base64_encode($text).'?='; }  $headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: '.adopt($project_name).' &lt;'.$admin_email.'&gt;' . PHP_EOL . 'Reply-To: '.$admin_email.'' . PHP_EOL;  mail($admin_email, adopt($form_subject), $message, $headers );

    &lt;?php var_dump($_POST); $method = $_SERVER['REQUEST_METHOD']; $admin_email = "info@antik88.ru"; $file = "act.jpg"; // файл //Script Foreach $c = true; if ( $method === 'POST' ) { $form_subject = trim($_POST["form_subject"]); foreach ( $_POST as $key =&gt; $value ) { if ( $value != "" &amp;&amp; $key != "project_name" &amp;&amp; $key != "admin_email" &amp;&amp; $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '&lt;tr&gt;':'&lt;tr style="background-color: #f8f8f8;"&gt;' ) . " &lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;&lt;b&gt;$key&lt;/b&gt;&lt;/td&gt; &lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;$value&lt;/td&gt; &lt;/tr&gt; "; } } } else if ( $method === 'GET' ) { $project_name = trim($_GET["project_name"]); $admin_email = trim($_GET["admin_email"]); $form_subject = trim($_GET["form_subject"]); $fileRead = fopen($file, "r"); // открываем файл $contentFile = fread($fileRead, filesize($file)); // считываем его до конца fclose($fileRead); // закрываем файл $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n"; $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn"; $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл $bodyMail .= "--".$separator ."--n"; foreach ( $_GET as $key =&gt; $value ) { if ( $value != "" &amp;&amp; $key != "project_name" &amp;&amp; $key != "admin_email" &amp;&amp; $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '&lt;tr&gt;':'&lt;tr style="background-color: #f8f8f8;"&gt;' ) . " &lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;&lt;b&gt;$key&lt;/b&gt;&lt;/td&gt; &lt;td style='padding: 10px; border: #e9e9e9 1px solid;'&gt;$value&lt;/td&gt; &lt;/tr&gt; "; } } } $message = "&lt;table style='width: 100%;'&gt;$message&lt;/table&gt;"; function adopt($text) { return '=?UTF-8?B?'.Base64_encode($text).'?='; } $headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: '.adopt($project_name).' &lt;'.$admin_email.'&gt;' . PHP_EOL . 'Reply-To: '.$admin_email.'' . PHP_EOL; mail($admin_email, adopt($form_subject), $message, $headers );

    И еще такой вопрос. Этот емейл info@antik88.ru никто не должен видеть? нельзя размещать его на сайте в контактной информации? или все-таки можно?

  • мне конечно не нравится, что вы делаете не то что вам говорят.
    По поводу файлов, прочитайте вот этот старый ответ.
    По поводу емейла - как хотите
  • Ипатьев, у меня просто не получается эта "отладка", в исходном коде я ничего не нашла, и решила, что просто не хватает кода, который отвечает за вложения...
    Спасибо Вам огромное, я попробую разобраться с php мейлером, хотя и инструкция на английском не готовит мне ничего хорошего... Я находила его на git и просто не рискнула взяться за него именно из-за отсутствия объяснения на русском, боюсь нахеровертить чего-то страшного и все испортить. Но, если Вы говорите, что это действительно хорошее решение, я попробую.
  • Странно, какой разительный контраст с кодом из удаленного вопроса.
    Я уж хотел вспомнить молодость, поумиляться глубокомысленному коду $post = !empty($_POST) ? true : false;...
    Но с другой стороны, в удаленном коде было непонятно, почему вообще письмо уходит, а здесь уже гораздо ближе к реальности.
    обратить внимание надо, во-первых, на тег
    <form action="#" id="form_body" class="form">
    и посмотреть в примерах, что туда пишут.
    После этого вывести результат var_dump($_POST); и внимательно его изучить.
    После этого снова вернуться к форме и подумать, чего в ней не хватает

    Ну и разумеется выкинуть часть с else if ( $method === 'GET' ) {

    • Это я экспериментировала с кодом и случайно вставила в вопрос то, что не работало совсем)
      Благодарю Вас за терпение) Подскажите, пожалуйста, как понять, что в них пишут? Зашла на сайт к конкурентам, в инструментах разработчика увидела
      &lt;input class="wpcf7-form-control has-spinner wpcf7-submit btn" type="submit" value="Отправить на оценку" /&gt; &lt;/p&gt;&lt;div class="wpcf7-response-output" aria-hidden="true"&gt;

      &lt;input class="wpcf7-form-control has-spinner wpcf7-submit btn" type="submit" value="Отправить на оценку" /&gt; &lt;/p&gt;&lt;div class="wpcf7-response-output" aria-hidden="true"&gt;

      откуда взять эти интересные наборы символов?

    • эти наборы не должны вас волновать ни в малейшей степени
    • Я имею ввиду, что у меня тоже что-то должно быть вместо символа решетки. В поисках примеров, что пишут туда вместо решеток я и полезла на другие сайты.
    • но смотрите почему-то в тег input, а не form
    • Ипатьев, Спасибо Вам большое за ответы. Чувствую себя глупо, так как методом подбора у меня ничего не вышло. Подскажите, пожалуйста, где можно подробнее узнать, как правильно заполнять атрибуты к этим "почтовым" тегам. Попробавала вставить method="post"
      и ничего не изменилось. Посоветуйте, пожалуйста, что-то для изучения. Что-то, что помогло бы решить мою проблему)
    • после добавления post надо сделать то, что у меня написано дальше:
      вывести результат var_dump($_POST);
    • Ипатьев, спасибо большое Вам за совет. Было бы справедливо хорошенько на меня разозлиться. Вывести результат var_dump($_POST); нужно в какой части файла php? Не ругайте за тупость очень сильно, пожалуйста) код я подобрала в уроке и попыталась совместить его с html, я совершенно ничего не понимаю в php, позор мне
    • Анна, ну лучше в самом верху.
      Это действие называется "отладкой": выполнение действий, которые не нужны для штатной работы программы, но помогают разобраться в том, почему она не работает.

      Результат работы var_dump лучше смотреть в исходном коде страницы. то есть после того как отправили форму, надо нажать Ctrl-U.

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

    • Ипатьев, Спасибо большое, что делитесь профессиональными знаниями) буду учиться)
      Хорошего Вам дня!)

    1) Проверить что приходит в $_POST
    2) Не использовать стандартную функцию mail(), так как она слишком плохо дебажится, да и в целом не айс.
    3) Поставить нормальный мэйлер, типа пхпмэйлер/свифтмэйлер.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ольга Сеть Ответ

    Проблема с получением пустых писем из формы обратной связи на почту хостинга может иметь несколько причин. Вот несколько возможных решений:

    1. Проверьте код обработки формы: убедитесь, что все поля формы правильно передаются в скрипт обработки и правильно обрабатываются. Может быть, некоторые поля не передаются или обрабатываются неправильно, из-за чего письмо приходит пустым.

    if(isset($_POST['submit'])) {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
     
        // Отправка письма
    }

    if(isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; // Отправка письма }

    2. Проверьте настройки почтового сервера хостинга: иногда почтовые сервера могут блокировать отправку писем с пустым телом из соображений безопасности. Убедитесь, что ваш хостинг разрешает отправку писем с пустым телом.

    3. Проверьте формат письма: убедитесь, что все переменные, передаваемые в письмо, правильно форматируются и подставляются в тело письма. Возможно, письмо приходит пустым из-за ошибок в форматировании.

    4. Проверьте спам-фильтры: иногда письма могут попадать в спам из-за некорректной конфигурации почтового сервера. Убедитесь, что письма из формы обратной связи не блокируются спам-фильтрами.

    5. Проверьте логи ошибок: если у вас есть доступ к логам ошибок на хостинге, посмотрите, нет ли там каких-либо ошибок, связанных с отправкой писем. Возможно, там есть подсказки о том, почему письма приходят пустыми.

    Следуя этим рекомендациям, вы сможете выявить и исправить причину пустых писем из формы обратной связи на почту хостинга.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно