Форма обратной связи ! Помоги мне....

  • Автор темы Susanin777
  • Обновлено
  • 13, May 2024
  • #1
Всем привет , у меня проблема с контактной формой.... Ι заполните поля контактной формы и нажмите «Отправить». Почта идет нормально, но пусто.

Без каких-либо данных, которые я ввел в поля. Посмотрите мой код. Файл sendemail.php $name = $_POST['имя']; $from = $_POST['электронная почта']; $subject = $_POST['subject']; $message = $_POST['сообщение']; $to = '';//замените на свой адрес электронной почты

$headers = массив();

$headers[] = "MIME-версия: 1.0";

$headers[] = "Тип контента: text/plain; charset=iso-8859-1";

$headers[] = "От: {$name} <{$from}>";

почта($to, $subject, $message, $headers);

умереть;

Html Файл индекса контактов

Αποστολή

Может кто-нибудь найти проблему, пожалуйста?

Спасибо

Susanin777


Рег
22 Nov, 2014

Тем
66

Постов
193

Баллов
573
  • 12, Jun 2024
  • #2
У вас здесь много проблем, лишь некоторые из которых связаны с вашей реальной проблемой.

Самый большой недостаток на стороне сервера заключается в том, что вы не смогли понять, как mail() принимает массивы для заголовков в новую эпоху PHP 5. Когда вы используете массив, он должен быть АССОЦИАТИВНЫМ массивом со значением индекса =>. Здесь у вас есть это:

 <form id="mainContactForm" method="post" action="sendemail.php">
<fieldset>
<label>
Your Name<br>
<input type="text" name="name" required><br>
</label><label>
E-Mail Address<br>
<input type="email" name="email" required><br>
</label></label>
Subject<br>
<input type="text" name="subject" required><br>
</label><label>
Message<br>
<textarea rows="6" name="message" required><br>
</label>
</fieldset>
<div class="submitsAndHiddens">
<button>Submit</button>
</div>
</form>


Код (разметка): На самом деле у вас должно быть:

 $headers = [ "MIME-Version" => "1.0", "Content-type" => "text/plain; charset=iso-8859-1", "From" => "{$name} <{$from}>" ]; 


Код (разметка): Я не уверен, что это помешает отправке основного содержимого сообщения, но, учитывая отсутствие индексов в заголовках, это может быть тем, что все портит.

Тем не менее, ваш клиентский код — это крушение.

Заполнитель НЕ является тегом LABEL, не делайте этого, вы говорите большому количеству пользователей, чтобы они пошли на ***, независимо от того, сколько вычурных невежд натирают свои трусики из-за этого.

Вам действительно не нужны идентификаторы ни на одном из них, поскольку на них нет меток.

Тип кнопки по умолчанию — «Отправить», большинству ваших классов и DIV просто так нужен топор, и где ваш набор полей?

Правильно структурированная форма выглядит примерно так:

  $headers = array(); $headers[] = "MIME-Version: 1.0"; $headers[] = "Content-type: text/plain; charset=iso-8859-1"; $headers[] = "From: {$name} <{$from}>"; 


Код (разметка): Если вам нужно больше классов, возможно, вы делаете что-то не так.

Кроме того, документ имеет UTF-8, как и все современные документы, если это так, то несоответствие кодировки символов при объявлении серверной части ISO-8859-1 может вас испортить.

Я бы также рассмотрел возможность исключения всех этих «переменных для НИЧЕГО», которые вы копируете из $_POST без уважительной причины, и не забудьте проверить КАЖДОЕ значение, даже если mail() теперь обеспечивает определенную степень очистки.
 

Lalka01


Рег
29 Jun, 2015

Тем
63

Постов
185

Баллов
540
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно