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

Тема в разделе "PHP", создана пользователем 1Dreamweaver1, 20 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Помогите разобраться в следующем.
    Есть форма контактов. Необходимо сделать следующее, чтобы с одного 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");
    }
     
  2. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    1Dreamweaver1
    не с тем борешся, будут отправлять тысячами с разных ip
    а тот кому реально надо будет отправить третий раз обломается
    не выход это
    я бы посоветовал задуматься над защитой самой вебформы
    капча при отправке - не лучший вариант для бизнес сайта.
    хитрый js при отсутствии результатов его исполнения форма не отправляется
    если есть клиенты без поддержки js то тоже плохо.

    собственно тоже придётся решать эту проблему и одно и другое решение имеет свои недостатки.
    Пока реализацией защиты не занимался отложил на след год :D
    Может кто то ещё что нибудь вменяемое предложит??
     
  3. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    С недавного времени начали спамить форму.
    С одного IP спамят раз по 8 - 10. Вот я и решил хоть немного услажнить задачу спамерам, чтобы с одного IP можно было отправлять не более 2 раз.
     
  4. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    ну так а если просто имена полей в форме поменять ??
    только сегодня отписывался об этом
    https://www.nulled.cc/showthread.php?p=1675846

    думал обо всей этой защите тк есть проект которым сейчас занимаюсь в котором будет подобная отправка формы, но ещё и с указанием куда отсылать
    а щас смотрю прямо эпидемия какаято ... я в ужасе придётся извращаться
     
  5. SkiLLer

    SkiLLer

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

    Hafner Постоялец

    Регистр.:
    9 июл 2008
    Сообщения:
    79
    Симпатии:
    30
    С чем связано данное мнение? Имхо, это правильный и самый простой вариант, который прекрасно справится с поставленной задачей.

    Если же всё-таки нужно блочить именно условие по сабжу то:
    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);
    }
    }  
     
  7. Kloster

    Kloster

    Регистр.:
    22 июн 2009
    Сообщения:
    216
    Симпатии:
    12
    А чем капча плоха? От ботов спасет, люди смогут ввести. 10 раз вводить капчу, конечно, смогут вручную, но захотят ли?
    Фильтровать по ip вообще бессмысленно, есть прокси, есть динамические адреса. Я могу без прокси за сутки до 20 адресов сменить, а то и больше, т.е. это имхо не выход.
     
  8. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Hafner
    Kloster
    тем что не у всех хорошее зрение
    плюс ко всему дяденьки и тётеньки зарабатывающие милионы в месяц нелюбят всматриваться в экран и чтото там рассматривать портя своё зрение.
    Рано или поздно забьют на сервис и уйдут к тем у кого капчу не надо вводить!!!
     
  9. Hafner

    Hafner Постоялец

    Регистр.:
    9 июл 2008
    Сообщения:
    79
    Симпатии:
    30
    o_nix, может несколько лет назад такое понимание и гуляло в обществе, но сегодня капча это состоявшийся инструмент защиты от спама и малые дети, и взрослые дяденьки с тетеньками прекрасно о нем знают и никакого негатива не возникнет, если у себя на сайте поставите удобную и читабельную капчу.
     
  10. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Смею с вами не согласиться, капча не самый хороший вариант защиты от спама, а если быть точнее то вообще не вариант защиты (поверте мне я знаю). И вы только претставте не все дяденьки и тетеньки знают что такое капча, есть реальные практические случаи, особенно не актуальна капча для интернет магазинов, но сейчас речь не о них.
     
Статус темы:
Закрыта.