За последние 24 часа нас посетили 56859 программистов и 1750 роботов. Сейчас ищут 832 программиста ...

"Каптча"

Тема в разделе "PHP для новичков", создана пользователем Andrey5555, 12 фев 2009.

  1. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    PHP:
    1. <?php
    2. header ("Content-type: image/gif");
    3. $alphabet = array ('a', '2', 'b', 'c', 'd', '3', 'e', 'g', 'h', '4', 'k', 'm', '5', 'n', 'p', '6', 'q', 'r', '7', 's', 'u', 'v', '8', 'w', 'x', '9', 'y', 'z');
    4. $width = 120;
    5. $height = 60;
    6. $lenght = 6;
    7. $keys = array_rand($alphabet, $lenght);
    8. $img = imagecreate($width, $height);
    9. $font = imageloadfont("calibri.gdf");
    10. $background_color = array (mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
    11. $background_color = imagecolorallocate($img, $background_color[0], $background_color[1], $background_color[2]);
    12. $text_color = array (mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100));
    13. $text_color = imagecolorallocate($img, $text_color[0], $text_color[1], $text_color[2]);
    14. for ($i = 0; $i < $lenght; $i++)
    15. {
    16. $string = $alphabet[$keys[$i]];
    17. imagestring($img, $font, 0, 0, $string, $text_color);
    18. }
    19. imagegif($img);
    20. ?>
    Выводит все символы одно на другом. Как этого избежать? Как координаты задать? И как сделать символы по центру?

    Спасибо.
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    hight.fatal.ru/captcha/
     
  3. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Hight, а в комментариях спамеры ручками спамят или каптчу обходят? :)
     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    гы гы, а я не знаю =) наверное ручками фигачат =) На этом форуме тоже моя каптча при регистрации работает и норм, ботов нет.
     
  5. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Но тут нету вывода точно по центру. Пробовал сделать вот так:

    $null = $width - $b;
    $x = $null / 2;
    imagestring($img, $font, $x, 20, $string, $text_color);

    Но это бред какой-то. Выводит якобы по "центру", но этот центр смещен влево точек на 10. Что не так?
     
  6. не учитываешь ширину буквы?
     
  7. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Не совсем понял. А можно кодом?
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  9. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Та ничего не пойму. Помогите пожалуйста, а то уже зае.... Не знаю как сделать!
    Наведите на путь истинный.