Есть сайт, постоянно приходят в день по 10 заявок в таком виде:
Почта: garrett.hatch@gmail.com
С уважением,
разработчики сайта.
Сделал скрытие поля, но не помогло.
Вот скрипт который обрабатывает отправку почты:
<?php
if (isset($_POST['spam'])) {$spam = $_POST['spam'];}
if (empty($spam)) /* Проверка скрытого поля от спама */
{
if (is_file('lib/class.phpmailer.php')) {
require_once("lib/class.phpmailer.php");
}
if (is_file('lib/class.smtp.php')) {
require_once("lib/class.smtp.php");
}
$http_host = $_SERVER['HTTP_HOST'];
$body = '';
if ( substr($http_host, 0, 4)=='www.') {
$host_name = substr($http_host, 4);
} else {
$host_name = $http_host;
}
if (isset($_SERVER['HTTP_REFERER'])) {
$http_referer = $_SERVER['HTTP_REFERER'];
} else {
$http_referer = '';
}
define ('HTTP_SERVER', 'http://' . $http_host . '/');
define ('HOST_NAME', $host_name);
define ('HTTP_REFERER', $http_referer);
$post = array(
'host_name' => HOST_NAME,
'host_dir' => HTTP_SERVER,
'host_referer' => HTTP_REFERER
);
if (!empty($_POST["form"])) {
foreach( $_POST["form"] as $key => $value) {
$post['user_form'] = $key;
$body .= 'Форма: ' . $post['user_form'] . chr(10) . chr(13);
}
}
if (!empty($_POST["email"])) {
$post['user_email'] = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$body .= 'Почта: ' . $post['user_email'] . chr(10) . chr(13);
}
if (!empty($_POST["name"])) {
$post['user_name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$body .= 'Имя: ' . $post['user_name'] . chr(10) . chr(13);
}
if (!empty($_POST["phone"])) {
$post['user_phone'] = filter_input(INPUT_POST,'phone', FILTER_SANITIZE_STRING);
$body .= 'Телефон: ' . $post['user_phone'] . chr(10) . chr(13);
}
if (!empty($_POST["message"])) {
$post['user_message'] = filter_input(INPUT_POST,'message', FILTER_SANITIZE_STRING);
$body .= 'Сообщение: ' . $post['user_message'] . chr(10) . chr(13);
}
if (!empty($_POST["product_name"])) {
foreach( $_POST["product_name"] as $key => $value){
$post['product_name'] = $key;
$body .= 'Название товара: ' . $post['product_name'] . chr(10) . chr(13);
}
}
if (!empty($_POST["product_article"])) {
$first_key = reset($_POST["product_article"]);
$body .= 'Артикулы: ';
foreach( $_POST["product_article"] as $key => $value){
$post['product_article'] = $key;
$body .= $post['product_article'] . ' ';
}
$body .= chr(10) . chr(13);
}
$body .= chr(10) . chr(13) . "С уважением," . chr(10) . chr(13) . "разработчики сайта " . $post['host_referer'];
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->IsSendmail();
$from = 'no-repeat@pemsan.ru';
$to = "mail@,ail.com";
$mail->SetFrom($from, HOST_NAME);
$mail->AddAddress($to);
$mail->isHTML(false);
$mail->Subject = "Новая заявка";
$mail->Body = $body;
if(!$mail->send()) {
echo 'Что-то пошло не так. ' . $mail->ErrorInfo;
return false;
} else {
header("Location: ../success.html");
return true;
}
}
header("Location: ../success.html");
exit; /* Выход без отправки письма, если поле spam не пустое */
?>
Что делать? как защитить сайт от спама? Сайт на чистом HTML+CSS