Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Не работает хак на отправку почты почему?

Не работает хак на отправку почты почему?


     24.01.2017    Общие вопросы, Общие вопросы по PHP, Хаки    492

вопрос
Не приходят письма на указанную почту? ну могу понять в чем проблема? выручайте!

/include/feedback.tpl
<form enctype="multipart/form-data" method="post" id="feedback-form">
<div class="feedp">
    <h5>Записатся</h5>
    <label for="nameFF">Имя:</label>
    <input type="text" name="nameFF" id="nameFF" required placeholder="например: Петрова Елена Сергеевна" x-autocompletetype="name" class="w100 border">
	<label for="contactFF">Телефон:</label>
    <input type="text" name="phoneFF" id="phoneFF" required placeholder="например: +7 911 888 22 22" x-autocompletetype="phone" class="w100 border">
    <label for="contactFF">Email:</label>
    <input type="email" name="contactFF" id="contactFF" required placeholder="например: elvin1972@mail.ru" x-autocompletetype="email" class="w100 border">
    <label for="fileFF">Прикрепить файл:</label>
    <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
    <label for="messageFF">Сообщение:</label>
    <textarea name="messageFF" id="messageFF" required rows="5" placeholder="Детали записи…" class="w100 border"></textarea>
    <br>
    <input value="Отправить" type="submit" id="submitFF">
	</div>
</form>
<script>
document.getElementById('feedback-form').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "contacts.php", true);
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      alert(http.responseText);
      f.messageFF.removeAttribute('value'); // очистить поле сообщения
      f.messageFF.value=''; // очистить поле сообщения
    }
  }
  http.onerror = function() {
    alert('Извините, данные не были переданы');
  }
  http.send(new FormData(f));
}, false);
</script>


- Открываем файл contacts.php и заменяем вверху email адрес на свой и закидываем этот файл в корень сайта (где лежит файл admin.php)
<?php
if (isset ($_POST['contactFF'])) {
  $to = "info_site@site.com"; // поменять на свой электронный адрес
  $from = $_POST['contactFF'];
  $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
  $message = "Имя: ".$_POST['nameFF']."\nТелефон: ".$_POST['phoneFF']."\nEmail: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR']."\nСообщение: ".$_POST['messageFF'];
  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $from . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"

--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$message";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize += $_FILES['fileFF']['size'][$i];
         $message.="

--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"

$attachment";
     }
   }
   $message.="
--$boundary--";

  if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    mail($to, $subject, $message, $headers);
    echo $_POST['nameFF'].', Ваше сообщение успешно отправлено, спасибо! С вами скоро свяжутся!';
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
  }
}
?>

Ответа пока нет


5 комментариев

progressive
Юзер

progressive - 27 января 2017 13:16 -

что не кто не подскажет?

progressive
Юзер

progressive - 3 февраля 2017 13:30 -

Ну что не кто не знает?

progressive
Юзер

progressive - 14 февраля 2017 04:40 -

Народ ну глянте пожалуйста в чём проблема может быть на DLE 11.2

irrwisch
Юзер

irrwisch - 14 февраля 2017 05:23 -

Причин может быть масса, начиная банальной ошибкой в работе js (так как contacts.php вызывается при помощи js) и заканчивая тем, что функция mail на сервере не работает, тут нужно смотреть конкретный сайт и логи сервера.

progressive
Юзер

progressive - 1 марта 2017 15:25 -

irrwisch, можите написать свой скайп или кокие либо друге контакты в личку покажу вам!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх