Создаём простую каптчу

Discussion in 'PHP' started by Anwy, 27 Mar 2015.

  1. Anwy

    Anwy Elder - Старейшина

    Joined:
    16 Dec 2004
    Messages:
    265
    Likes Received:
    232
    Reputations:
    45
    Научу вас создавать простую каптчу. Сначала создадим саму картинку каптчи с кодом.
    Нам понадобится 3 файла, captcha.php, test.php, captcha.jpg
    Создадим файл captcha.php

    PHP:
    <?
    // Помечаем тип документа на картинку
    header("content-type: image/gif");

    // Задаем массив с цифрами и буквами
    $arr = array('a','b','c','d','e','f',

    'g','h','i','j','k','l',

    'm','n','o','p','r','s',

    't','u','v','x','y','z',

    'A','B','C','D','E','F',

    'G','H','I','J','K','L',

    'M','N','O','P','R','S',

    'T','U','V','X','Y','Z',

    '1','2','3','4','5','6',

    '7','8','9','0');

    // Максимальное число символов в коде
    $max 6;

    // Генерируем случайный код из массива
    for($i=0$i<$max$i++)
    {
    $min rand(1,58);
    $number .= $arr[$min];
    }
    // Устанавливаем Cookies
    setcookie('cptch_cd'$number);

    // Забираем фон каптчи
    $img imagecreatefromjpeg("captcha.jpg");

    // Цвет шрифта
    $black imagecolorallocate($img12125234);

    // Рисуем код
    // $img - идентификатор картинки
    // 5 - номер шрифта
    // 35 - координата X
    // 20 - координата Y
    // $number - наш код
    // $black - цвет шрифта
    imagestring($img53520$number$black);

    // Выводим рисунок в браузер
    imagepng($img);

    ?>
    Картинка должна лежать там же где и файл captcha.php
    по ссылке http://вашсайт/captcha.php


    Теперь свяжем её с формой
    Создаем файл test.php

    PHP:
    <?
    // Если форму не отправили, то выведем её
    if(!isset($_POST['code']))
    {
    echo 
    "
    <form action="
    test.php" method="post">

    Введите код указанный на картиночке ниже

    <img src="
    captcha.php" border="0" alt="" />
    </form>

    "
    ;
    } else {

    // Проверяем код
    if($_COOKIE['cptch_cd']!==$_POST["code"])
    echo 
    "Код не верный! Ещё раз! Быстрее!";
    else
    echo 
    "Код введен верно!";
    }
    ?>
     
    1 person likes this.
  2. 5maks5

    5maks5 Elder - Старейшина

    Joined:
    29 Aug 2010
    Messages:
    451
    Likes Received:
    264
    Reputations:
    40
    Я ничего против не имею.. Но это ведь не php.ru нет? Суть выкладывать сюда скомпилированный паблик годов 2009-2010 (а именно тогда все писали свои капчи).
    Даже туториалов на Stackoverflow овер чем туча.
    За старание - плюс, но фактическая ценность около нуля.
    Ибо достаточно открыть Google и вбить "пишем капчу", "создаем капчу", "write your own captcha" и етк.