Перейти к публикации

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


Рекомендованные сообщения

Вот форма:

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

</head>

<form action="send.php" method="post" id="sendform" enctype="multipart/form-data">

<input id="check" name="check" type="hidden" value="" />

<fieldset>

<p>

<i style="font-size: 15px; color: Black"><label>Имя*:</label><br>

<input style="height:25px" name="name" value="" size="25" type="text" required placeholder=" Иван.." /></i>

</p>

<br><p>

<i style="font-size: 15px; color: Black"><label>Контактный номер*:</label><br>

<input style="height:25px" name="tel" value="" size="25" required type="tel" placeholder=" +7..." /></i>

</p>

<br><p>

<i style="font-size: 15px; color: Black"><label>E-mail*:</label><br>

<input style="height:25px" name="email" value="" size="25" required type="email" placeholder=" пример@mail.ru.." /></i>

</p>

<br><p>

<i style="font-size: 15px; color: Black"><label>Тема:</label><br>

<input style="height:25px" name="theme" value="" size="25" required type="theme" placeholder=" Тема сообщения или заказа.." /></i>

</p>

<br><p>

<i style="font-size: 15px; color: Black"><label>Сообщение - Заказ:</label><br>

<textarea style="resize:none" name="message" cols="31" rows="18" required placeholder=" Обязательное поле.." ></textarea></i>

</p>

<br><p>

<i style="font-size: 15px; color: Black"><label>Прикрепить файл:</label><br><br>

<input style="height:25px" name="file" value="1" size="25" type="file" /></i>

</p>

<br><input onclick="document.getElementById('check').value = 'secretcode';" style="height:30px; width:237px; font-size: 15px; color: Black" value="Отправить заявку" name="sendMail" type="submit" />

</fieldset>

</form>

</html>

Через неё летит всякий спам по 50-100 писем в день, как избавиться от ботов и спама?

Ссылка на сообщение
Поделиться на других сайтах

Вот скрипт:
 

<?php
$to = 'info@!.ru';
$from = 'info@!!.ru';

if ($_POST['check'] != 'secretcode') exit('Spam decected');

if ( isset( $_POST['sendMail'] ) ) {
  $name  = substr( $_POST['name'], 0, 64 );
  $tel = substr( $_POST['tel'], 0, 64 );
  $email   = substr( $_POST['email'], 0, 64 );
  $theme   = substr( $_POST['theme'], 0, 64 );
  $message = substr( $_POST['message'], 0, 250 );
 

  if ( !empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
    $filepath = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
  } else {
    $filepath = '';
    $filename = '';
  }
 
  $body = "Имя:\r\n".$name."\r\n\r\n";
  $body .= "Контактный номер:\r\n".$tel."\r\n\r\n";
  $body .= "E-mail:\r\n".$email."\r\n\r\n";
  $body .= "Тема - Заказ:\r\n".$theme."\r\n\r\n";
  $body .= "Описание заказа:\r\n".$message;
 
  send_mail($to, $body, $email, $filepath, $filename);
}

// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $body, $email, $filepath, $filename)
{
  $subject = 'Новый заказ с сайта !.ru';
  $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  $headers = "From: info@!.ru \r\n";   
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
  $multipart = "--".$boundary."\r\n";
  $multipart .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
  $multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

  $body = $body."\r\n\r\n";
 
  $multipart .= $body;
 
  $file = '';
  if ( !empty( $filepath ) ) {
    $fp = fopen($filepath, "r");
    if ( $fp ) {
      $content = fread($fp, filesize($filepath));
      fclose($fp);
      $file .= "--".$boundary."\r\n";
      $file .= "Content-Type: application/octet-stream\r\n";
      $file .= "Content-Transfer-Encoding: base64\r\n";
      $file .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
      $file .= chunk_split(base64_encode($content))."\r\n";
    }
  }
  $multipart .= $file."--".$boundary."--\r\n";
  mail($to, $subject, $multipart, $headers);
  echo "Сообщение отправлено. Спасибо Вам " . $first_name . ", мы скоро свяжемся с Вами.";
  echo "<br /><br /><a href='http://!.ru/'>Вернуться на сайт.</a>";
}
?>
<script language="JavaScript" type="text/javascript">
function changeurl(){eval(self.location="http://!ru/");}
window.setTimeout("changeurl();",3000);
</script>

Изменено пользователем a1exRaccoon
Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, a1exRaccoon сказал:

летит всякий спам по 50-100 писем в день, как избавиться от ботов и спама?

Родная обратная связь вполне справляется от ботов - только нужно использовать защиту: встроенную капчу и своеобразный вопрос с ответом.

Либо использовать модуль от
Пафнутия

 

Ссылка на сообщение
Поделиться на других сайтах
05.01.2021 в 12:31, kamensk сказал:

Родная обратная связь вполне справляется от ботов - только нужно использовать защиту: встроенную капчу и своеобразный вопрос с ответом.

Либо использовать модуль от
Пафнутия

 

Стандартная форма ничуть не хуже бомбится почти любым ПО.
Единственная защита, это не стандартные решения.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...