Защищаем формы заказов партнерки 8088 от спама

Дата05-02-2023

5


Наверняка многие, кто работает с партнеркой 8088, сталкиваются с проблемой спама в формах заявок, что существенно подрывает конверт и делает лишнюю работу модераторам партнерки.

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

Прикручиваем KCaptcha к этой форме. Итак, для начала скачаем архив с kcaptcha к себе и распакуем его. В итоге, увидим такую картину:

/
  include
  captcha.php

Затем открываем /include/kcaptcha_config.php и изменяем все по вкусу. Теперь в той же директории, что и kcaptcha, создадим файлы:

/
  index.php
  func.js

В index.php в самом начале добавляем

Далее, добавляем перед формой партнерки

Вы неверно ввели код с картинки.");
	} else {
	$doctor = $_POST['doctor'];
	$region = $_POST['region'];
	$name = $_POST['name'];
	$phoneprefix = $_POST['phoneprefix'];
	$phone = $_POST['phone'];
	$comment = $_POST['comment'];
	$programID = $_POST['programID'];
	$partnerID = $_POST['partnerID'];
		// посылаем http запрос на http://partner.8088.ru/query.php
		$curl = curl_init(); // инициализируем cURL
		// А дальше устанавливаем опции запроса в любом порядке
		curl_setopt($curl, CURLOPT_URL, 'http://partner.8088.ru/query.php'); // Здесь устанавливаем URL к которому нужно обращаться
		curl_setopt($curl, CURLOPT_FAILONERROR, 1);
		curl_setopt($curl, CURLOPT_TIMEOUT, 3); // устанавливаем таймаут в секундах
		curl_setopt($curl, CURLOPT_POST, 1); // устанавливаем метод POST
		curl_setopt($curl, CURLOPT_POSTFIELDS, "doctor=$doctor&region=$region&name=$name&phoneprefix=$phoneprefix&phone=$phone&comment=$comment&programID=$programID&partnerID=$partnerID"); // сам POST запрос
		curl_exec($curl);
		//$result = curl_exec($curl); // выполняем запрос и записываем в переменную
		curl_close($curl); // заканчиваем работу curl
		die();
		//echo $result; // собственно печатаем результат
	}
}
?>

Теперь в форму партнерки добавим одну строчку

echo '
 
Введите число с картинки
 
<input name="keystring" size="10" type="text" /><img src="captcha.php?'.session_name().'='.session_id().'" alt="" />';

Вот в общем-то и все. Скачать посмотреть пример реализации можно здесь. Не забудьте в форме заменить XXXX на ваш партнерскй id.

Метки:   , , ,