Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Форма с защитой от спама на PHP без картинки

Создавая черный список сайтов, я по старинке опять на форму хотел добавлять каптчу....

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

Итак, рассмотрим ситуацию вечной борьбы спамера и пользователя. Как защититься от одного и не навредить второму?

И тут возникла мысль... ведь спам рассылают роботы, которые "не держат сессию"! Выход найден! Все, что требуется, у пользователя должен быть включен javascript и он должен принимать куки.


<?php
session_start
();
if(!isset(
$_SESSION['add'])) {
   
$_SESSION['add']=rand(1000,999999);
   if(isset(
$_POST['add']))
     die(
'Разрешите куки, иначе вы не сможете добавить объявление!');
}


if(isset(
$_POST['add'])){
  if (
intval($_POST['add'])!=intval(@$_SESSION['add'])){
     
// ставлю новое значение, чтоб не спамили перебором
     
$_SESSION['add']=rand(1000,999999);
     die(
'Разрешите javascript и куки, иначе Вы не сможете добавить информацию!';
  }else{
     
// здесь спокойно пишу данные в базу
  
}
}

<
p>Форма отправкииз которой я удалил лишнее:</p>
<
form name='form' method='post'>
icq: <input type=text name="icq" size=15><br>
<
input type="hidden" name="add" value="<?=$_SESSION['add'] ?>">
<
INPUT TYPE="SUBMIT" value="Добавить сайт в черный список" /><br>
</
form>

?>
Скопировать в буфер

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

При получении формы проверяется соответствует переданная переменная той, которая стоит в сесии этого пользователя, если нет, то можно или сразу отправить спамера на порно сайт или культурно предположить, что это пользователь с выключенным javascript или куки.

В качестве дальнейшего усложнения, можно переменную инициализировать правильным значением из Javascript. А изначально присваивать неверное значение. Это на случай, если спамер будет сохранять сесию, но не поддерживать javascript.

Кухни выбор шкафа купе.
-  Салоны красоты оборудование для парикмахерских выгодные цены.

© Copyright 2008-2012 by KDG