Форма контактов: c одного IP отправить не > 2 раз

Статус
В этой теме нельзя размещать новые ответы.

1Dreamweaver1

Профессор
Регистрация
4 Янв 2008
Сообщения
417
Реакции
45
Помогите разобраться в следующем.
Есть форма контактов. Необходимо сделать следующее, чтобы с одного IP форма отправлялась не больше 2-х раз в сутки.

БД ipbase(id, ip, time)
PHP:
mysql_query("delete from ipbase where time >= " . time() + (24*3600));
$result = mysql_query("select * from ipbase where ip =\"{$_SERVER['REMOTE_ADDR'}\"");
if(mysql_num_rows($result) == 0) {
$sql = "insert into ipbase values('', '{$_SERVER['REMOTE_ADDR']}', '" . time() . "')";
mysql_query($sql);
} else {
die("You cannot access this page for 24hrs");
}
 
1Dreamweaver1
не с тем борешся, будут отправлять тысячами с разных ip
а тот кому реально надо будет отправить третий раз обломается
не выход это
я бы посоветовал задуматься над защитой самой вебформы
капча при отправке - не лучший вариант для бизнес сайта.
хитрый js при отсутствии результатов его исполнения форма не отправляется
если есть клиенты без поддержки js то тоже плохо.

собственно тоже придётся решать эту проблему и одно и другое решение имеет свои недостатки.
Пока реализацией защиты не занимался отложил на след год :D
Может кто то ещё что нибудь вменяемое предложит??
 
С недавного времени начали спамить форму.
С одного IP спамят раз по 8 - 10. Вот я и решил хоть немного услажнить задачу спамерам, чтобы с одного IP можно было отправлять не более 2 раз.
 
ну так а если просто имена полей в форме поменять ??
только сегодня отписывался об этом
Для просмотра ссылки Войди или Зарегистрируйся

думал обо всей этой защите тк есть проект которым сейчас занимаюсь в котором будет подобная отправка формы, но ещё и с указанием куда отсылать
а щас смотрю прямо эпидемия какаято ... я в ужасе придётся извращаться
 
Как вариант, можно еще сделать имена полей динамическими, например, в зависимости от дня недели. Не очень уж защита но все таки, если бот не парсит перед этим форму - не отправит. А по твоему примеру, на первый взгляд все должно работать, только
PHP:
if(mysql_num_rows($result)>1){
    die("You cannot access this page for 24hrs");
}
 
капча при отправке - не лучший вариант для бизнес сайта.

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

Если же всё-таки нужно блочить именно условие по сабжу то:
PHP:
mysql_query("delete from ipbase where time >= " . time() + (24*3600));
$result = mysql_query("select * from ipbase where ip =\"{$_SERVER['REMOTE_ADDR'}\"");
if(mysql_num_rows($result) == 0) {
$sql = "insert into ipbase values('', '{$_SERVER['REMOTE_ADDR']}', '" . time() . "', '0')";
mysql_query($sql);
} else {
$r = mysql_fetch_assoc($result);
if ($r['count_send'] > 2) {
die("You cannot access this page for 24hrs");
} else {
$sql = "update `ipbase` set `count_send` = `count_send` + 1 where ip = \"{$_SERVER['REMOTE_ADDR'}\"";
mysql_query($sql);
}
}
 
А чем капча плоха? От ботов спасет, люди смогут ввести. 10 раз вводить капчу, конечно, смогут вручную, но захотят ли?
Фильтровать по ip вообще бессмысленно, есть прокси, есть динамические адреса. Я могу без прокси за сутки до 20 адресов сменить, а то и больше, т.е. это имхо не выход.
 
Hafner
Kloster
тем что не у всех хорошее зрение
плюс ко всему дяденьки и тётеньки зарабатывающие милионы в месяц нелюбят всматриваться в экран и чтото там рассматривать портя своё зрение.
Рано или поздно забьют на сервис и уйдут к тем у кого капчу не надо вводить!!!
 
o_nix, может несколько лет назад такое понимание и гуляло в обществе, но сегодня капча это состоявшийся инструмент защиты от спама и малые дети, и взрослые дяденьки с тетеньками прекрасно о нем знают и никакого негатива не возникнет, если у себя на сайте поставите удобную и читабельную капчу.
 
o_nix, может несколько лет назад такое понимание и гуляло в обществе, но сегодня капча это состоявшийся инструмент защиты от спама и малые деди, и взрослые дяденьки с тетеньками прекрасно о нем знают и никакого негатива не возникнет, если у себя на сайте поставите удобную и читабельную капчу.

Смею с вами не согласиться, капча не самый хороший вариант защиты от спама, а если быть точнее то вообще не вариант защиты (поверте мне я знаю). И вы только претставте не все дяденьки и тетеньки знают что такое капча, есть реальные практические случаи, особенно не актуальна капча для интернет магазинов, но сейчас речь не о них.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху