Captcha(анти спам фильтр)

Тема в разделе "PHP", создана пользователем g-prime, 26 авг 2008.

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

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    Здравствуйте! Делаю новую версию своего скриптика, вот и хочу защитить от спама, через форму. Ну так вот какая лучше каптча, на Ваш взгляд?
     
  2. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    175
    Симпатии:
    107
    Посмотри это: Перейти по ссылке
    И сам ресурс на предмет алгоритмизации при создании каптч.
     
  3. quick

    quick Постоялец

    Регистр.:
    24 май 2008
    Сообщения:
    56
    Симпатии:
    24
  4. lexxxus56

    lexxxus56

    Регистр.:
    27 окт 2007
    Сообщения:
    370
    Симпатии:
    373
    простая капча

    Сначала мы генерируем число, с помощью mt_rand.И суем его в сессию. А потом выводим это число на изображение.

    Nospam.php-файл генерации рисунка
    PHP:
    session_start();
    //стартуем сессию
    $_SESSION['protect']=mt_rand("1111","9999");
    //генирируем случаное число от 1111 до 9999 и суем в переменную сессии 
    Header("Content-type: image/gif");
    $image=imagecreate(100,50);
    //Создаем холст
    ImageColorAllocate($image,100,100,100);
    //заливаем его цветом
    $textcolor=ImageColorAllocate($image,0,0,0);
    //определяем цвет текста
    imagestring($image,5,26,19,$_SESSION['protect'], $textcolor);
    //выводим текст сгенерированный mt_rand на изображение 
    imageGif($image);
    Index.php-файл проверки
    PHP:
    session_start();
    echo 
    "<img src=nospam.php>";
    //выводим рисунок сгенерированный в файле nospam.php и форму
    <form method=POST>
    <
    input type=text name=text>
    <
    input type=submit name=go>";
    if(isset(
    $_POST['go'])){
    if(
    $_POST['text']==$_SESSION['protect']){echo "Верно";}else{echo "Поробуйте еще раз";}
    //проверяем равен ли текст посланный через форму тому числу что мы сгенерировали в файле nospam.php.
    }
    session_unregister('protect');
     
  5. Anshir

    Anshir Создатель

    Регистр.:
    29 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Пользуюсь капчей, которую взял из DLE, пока устраивает)
     
  6. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Блин! мне нравится такая защита! Всюду бы так делали :)

    тогда весь процесс распознавания на стороне бота свелся бы к выдергиванию ответа из сесии :)
     
  7. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    всюду так и делают
    если ты думаешь что так просто получишь к данным в сессии , поделись с нами секретом , мега-хаЦкер
     
  8. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Блин:ah: от это я погорячился. Дело в том что это число протект, оно не передается тому кто дергает страничку, а хранится на серваке в файлике сессии с уникальным СИДом. Вот этот сид и передается дергаещему - данных из него не вытянуть. Ну разве-что заломиться на сервер в директорию где хранятся эти файлики.
     
  9. dangrossman

    dangrossman Прохожие

    Try this: rcaptcha dot net
     
  10. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    Хаха, в DLE используют captch'y: Перейти по ссылке
    А про нее уже в теме говорилось
     
Статус темы:
Закрыта.