Создание Captcha-изображения средствами PHP

Тема в разделе "PHP", создана пользователем Super_BOT, 4 сен 2010.

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

    Super_BOT

    Регистр.:
    21 апр 2009
    Сообщения:
    256
    Симпатии:
    28
    Здраствуйте, необходимо реализовать алгоритм создания captcha-изображения средствами PHP, есть ли у кого готовое решение, или в какую сторону нужно смотреть при решении данной проблемы?

    P.S. готовые решения без исходного кода предлагать не нужно, целью является написание алгоритма
     
  2. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
  3. DUKeZ

    DUKeZ Создатель

    Регистр.:
    20 янв 2009
    Сообщения:
    24
    Симпатии:
    3
    Вот неплохая капча: http://www.captcha.ru/kcaptcha/
    Еще в ZendFramework есть капча, к примеру.
     
  4. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Наверно самый простой вариант :)
    PHP:
    <?php
    session_start
    (); 
    $text rand(10000,99999);
    $_SESSION["vercode"] = $text;
    $height 25;
    $width 65;
    $image_p imagecreate($width$height);
    $black imagecolorallocate($image_p000); 
    $white imagecolorallocate($image_p255255255);
    $font_size 14;  
    imagestring($image_p$font_size55$text$white); 
    imagejpeg($image_pnull80);
    ?> 
     
  5. wal

    wal Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    89
    Симпатии:
    30
    еще вариант капчи,

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

    Перейти по ссылке
     
  6. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    если собираетесь создавать сами, то могу посоветовать перед генерацией изображения создать небольшой массив, в котором цифры будут приравнены словам, примерно так:
    PHP:
    1=>'один',
    2=>'два',
    3=>'три',
    4=>'четыре',
    5=>'пять',
    ...
    результат на картинке
     

    Вложения:

    • captcha.png
      captcha.png
      Размер файла:
      1,7 КБ
      Просмотров:
      3
  7. DUKeZ

    DUKeZ Создатель

    Регистр.:
    20 янв 2009
    Сообщения:
    24
    Симпатии:
    3
    t3s: При такой реализации есть один нюанс не очень хороший: нерусскоязычные пользователи вряд ли смогут ввести капчу
     
  8. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    ну да, получится дополнительная защита от китайских школьников, которые сидят на антикапче и антигейте...

    а для англоязычного ресурса никто не мешает использовать в массиве английские числа
     
  9. AtomZap

    AtomZap Писатель

    Регистр.:
    7 сен 2010
    Сообщения:
    6
    Симпатии:
    1
  10. oleg3d

    oleg3d Создатель

    Регистр.:
    11 дек 2009
    Сообщения:
    34
    Симпатии:
    2
    еще вариант
    PHP:
    <?php


    $code
    ='1234';

    $im imagecreate (8020);
    $bg imagecolorallocate ($im232238247);

    for(
    $i=0$i<=128$i++){
        
    $color imagecolorallocate ($imrand(0,255), rand(0,255), rand(0,255));
        
    imagesetpixel($imrand(2,80), rand(2,20), $color);
    }

    for (
    $i 0$i strlen($code); $i++) {
        
    $color imagecolorallocate ($imrand(0,200), rand(0,100), rand(0,200));
        
    $x $i 20;
        
    $y rand(16);
        
    imagechar($im5$x$y$code[$i], $color);
    }

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0"false);
    header("Pragma: no-cache");

    header("Content-type: image/jpeg");
    imagejpeg($im);
    imagedestroy ($im);    

    ?>
     
Статус темы:
Закрыта.