1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Капча

Тема в разделе "Базовые решения", создана пользователем vital, 24 мар 2010.

  1. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Вам тоже не нравится эта мудреная ReCaptcha, но защита нужна? Выкладываю хороший модуль. Стырил где-то в нете, да простит меня автор, но не помню где.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">captcha.php</div></div><div class="sp-body"><div class="sp-content">
    PHP:
    <?php

    session_start
    ();


    $width 100;
    $height 40;
    $font_size 12;
    $let_amount 5;
    $back_let_amount 30;
    $path_fonts 'fonts/';

    $letters = array(
    'a''b''c''d''e''f''g''h''j''k''m',
    'n''p''q''r''s''t''u''v''w''x''y',
    'z''2''3''4''5''6''7''9'
    );

    $colors = array('10''30''50''70''90''110',
    '130''150''170''190''210'
    );


    $im imagecreatetruecolor($width$height);
    $back imagecolorallocate($im255255255);
    imagefill($im00$back);


    $fonts = array();
    $dir opendir($path_fonts);

    while(
    $font_name readdir($dir))
    {
    if(
    $font_name !='.' && $font_name != '..')
    $fonts[] = $font_name;
    }

    closedir($dir);


    for(
    $i 0$i $back_let_amount$i++)
    {
    $color imagecolorallocatealpha($imrand(0255), rand(0255), rand(0255), 100);

    $font $path_fonts $fonts[rand(0sizeof($fonts) - 1)];
    $letter $letters[rand(0sizeof($letters) - 1)];
    $size rand($font_size 2$font_size 2);

    imagettftext($im$sizerand(045), rand($width 0.1$width $width 0.1),
    rand($height 0.2 $height), $color$font$letter);
    }

    for(
    $i 0$i $let_amount$i++)
    {
    $color imagecolorallocatealpha($im$colors[rand(0sizeof($colors) - 1)],
    $colors[rand(0sizeof($colors) - 1)],
    $colors[rand(0sizeof($colors) - 1)], rand(2040));

    $font $path_fonts $fonts[rand(0sizeof($fonts) - 1)];
    $letter $letters[rand(0sizeof($letters) - 1)];
    $size rand($font_size 2.1 2$font_size 2.1 2);
    $x = ($i 1) * $font_size rand(47);
    $y = (($height 2) / 3) + rand(05);
    $code[] = $letter;

    imagettftext($im$sizerand(015), $x$y$color$font$letter);
    }


    $_SESSION['captcha'] = implode(''$code);

    header('Content-type: image/gif');
    imagegif($im);
    imagedestroy($im);


    ?>
    Думаю там все очевидно.. Используется так.
    создайте папку fonts для шрифтов, киньте туда любые biggrin.gif
    при подключении не забудьте запустить сессию, и прописать условие типа
    PHP:
    if($_SESSION['captcha'] !== strtolower($_POST['captcha'])) 
    {
    print 
    'код неверный';
    }
     
Загрузка...
Похожие Темы - Капча
  1. prosto4ok
    Ответов:
    1
    Просмотров:
    3.096

Поделиться этой страницей