Капча с картинкой
Начнем с самого начала и разберем весь процесс создания капчи с картинками через php!
Всё о капче с картинкой
- Алгоритм работы капчи с картинкой. картинки для капчи с картинкой
- Форма для капчи с картинкой.
- Вывод картинки для капчи с картинкой
- Получение слова и названия картинки
- Код капчи с картинкой в сборе
- Живой пример капчи с картинкой
- Капча из картинок для сайта
- Капча из картинки на php ->
New - Скачать можно здесь
Алгоритм работы капчи с картинкой
Первым шагом в создании капчи с картинкой нам нужен алгоритм!Когда вы задумываете, что то запрограммировать, то должны, хотя бы примерно, представлять, какой алгоритм работы у данного скрипта.
Поскольку - это простой скрипт, то алгоритм работы можно написать без черновика.
Название картинки выбирается случайно.
У нас должна вывестись на экран картинка, т.е. у нас уже есть название картинки в переменной.
Если оно(название картинки) на английском языке(множество хостингов не поддерживает на русском языке), то нужен механизм, который, позволит выводить название аналога на русском языке.(это ассоциативный массив)
Это название будет вписываться в input с типом hidden - скрытое поле.
Пользователь видит картинку и записывает название увиденного с картинки.
После отправки скрытое поле и поле введенное пользователем сравниваются.
Если присланы два одинаковых названия - капча со словами пройдена.
Картинки для капчи с картинкой
Вторым шагом в создании капчи с картинкой нам потребуются картинки, которые мы будем применять.Вы можете использовать любое количество картинок - столько, сколько вам вздумается!
У нас всего будет 6 картинок, размер картинки 100х100px:






Форма для капчи с картинкой.
После того, как мы набрали картинок для капчи с картинками нам потребуется форма, из которой мы будем отправлять данные на сервер и для этого нам понадобится:Использовали для капчи с картинкой
Тег form
Данные будем отправлять методом - post
action - пустой - будем отправлять данные на эту же страницу.
Используем required - для того, чтобы сделать поля формы обязательными.
Собираем форму для капчи с картинкой
После того, как мы изучили все перечисленные темы - мы спокойно можем собрать нашу форму для капчи с картинкой:<form action="" method="post">
<input type="text" name="text_kapcha" placeholder="Название животного" required><br>
<input type="hidden" name="hidden_kapcha" value="'.$slovo.'" ><br>
<button name="otpravit" value="Привет!">Отправить</button>
</form>
Вывод картинки для капчи с картинкой
Нам потребуется для вывода картинок массив, в каждой ячейке которого будет находится название картинки, вывод которых приведен выше:
if($array[$array_rand] == 'slon'){$slovo = 'слон';}
if($array[$array_rand] == 'kot'){$slovo = 'кот';}
if($array[$array_rand] == 'krokodile'){$slovo = 'крокодил';}
if($array[$array_rand] == 'mish'){$slovo = 'мышь';}
if($array[$array_rand] == 'petuh'){$slovo = 'петух';}
if($array[$array_rand] == 'kon'){$slovo = 'конь';}
Для иллюстрации этого процесса, выведем сперва echo $array[$array_rand], попробуйте несколько раз перезагрузить страницу!
А вторым слово echo $slovo
И выведем эту картинку таким образом:
И результат:

Получение слова и название картинки
Поскольку мы помним, что поля у нас два 1).текст, 2). скрытое, в котором попадает название картинки на английском.
$text_kapcha = strip_tags(trim($_POST['text_kapcha']));
$hidden = strip_tags(trim($_POST['hidden']));
Далее идет проверка того, что было отослано в форме!
Если кнопка отправить была нажата:
После того, как определили, что кнопка нажата - создаем условие, равна ли переменная - отправленная пользователем название картинки $text_kapcha и это же название картинки из переменной $hidden
Если данные равны, то выводим:
Иначе else
Соберём весь код проверки капчи с картинкой
if($_POST['otpravit'])
{
if($text_kapcha == $hidden)
{
$show = '<b style="color: red">Все верно</b><br>';
}
else
{
$show = '<b style="color: red">Ответ не правильный!</b><br>';
}
}
Капча с картинкой в сборе
Соберем все то, что было выше озвучено в один готовый код для капчи с картинкой!Что можно сделать с данным кодом!?
Я бы посоветовал скачать готовый код картинки в архиве.И там же есть все описанные картинки для капчи.
В скачанном архиве есть страница, открываем её в любом редакторе кода и заменяем путь до картинки на ваш путь на вашем сайте.Данный адрес отмечен красным ниже в коде, чтобы вы знали где его искать.
Готовый код капчи с картинкой
$array = array('slon','kot','krokodile','mish','petuh','kon');
$array_rand = array_rand($array, 1);
if($array[$array_rand] == 'slon'){$slovo = 'слон';}
if($array[$array_rand] == 'kot'){$slovo = 'кот';}
if($array[$array_rand] == 'krokodile'){$slovo = 'крокодил';}
if($array[$array_rand] == 'mish'){$slovo = 'мышь';}
if($array[$array_rand] == 'petuh'){$slovo = 'петух';}
if($array[$array_rand] == 'kon'){$slovo = 'конь';}
$text_kapcha= strip_tags(trim($_POST['text_kapcha']));
$hidden = strip_tags(trim($_POST['hidden']));
if($_POST['otpravit'])
{
if($text_kapcha == $hidden)
{
$show .='<b style="color: red">Все верно</b><br>';
}
else
{
$show .='<b style="color: red">Ответ не правильный!</b><br>';
}
}
$show .= 'Пожалуйста напишите <br>
если сомневаетесь наведите мышку на картинку<br>
<img border="1px solid" width="100px" height="100" src="<form action="" method="post">
<input type="text" name="text_kapcha" placeholder="Название животного" required><br>
<input type="hidden" name="hidden_kapcha" value="'.$slovo.'" ><br>
<button name="otpravit" value="Привет!">Отправить</button>
</form> ';
Живой пример капчи с картинкой
И последнее, что нам осталось - это протестировать готовую капчу с картинками прямо здесь или на отдельной страницеесли сомневаетесь наведите мышку на картинку

Как сделать капчу из нескольких картинок
Если вам очень хочется сделать капчу из нескольких картинок, ну чтож, это тоже можно сделать!
Это делается из того материала, что приведен выше!
И капча с несколькими картинками - это наверняка настолько круто, что только круче яйца вкрутую!
Только это настолько муторная и большая работа, в который, я никакого для себя профита не вижу...
Алгоритм создания капчи с множеством картинок
Вам понадобится как минимум
1).
2). + 9 полей input, куда будут передаваться данные по нажатию на картинку, и нужно продумать скрипт, который будет отслеживать нажатие - отжатие картинки
3). и плюс еще
Далее вам нужно... как-то зафиксировать передаваемый данные в поля hidden... это должен быть массив из 9 ячеек с заранее записанными данными... в них... например если тема кошки... то определяете сколько кошек.. и сколько не кошек, и отслеживаете соответствии отправленных данных 9 + 9
Вывести какой-то алгоритм рандомно выводить в поле hidden выше приведенные значения массива.
Далее нужно создать, ну как минимум массивов 10 с разными категориями, что аналогично теме "кошек", например -массив "собаки", массив "машины" и т.д...
Далее нужен алгоритм, который будет рандомно выбирать массив...
Это если очень кратко...

Итого... ну нах...
Капча из картинки на php
Мы тут сделали новую тему : цифры и буквы в картинку php.На этой основе мы сможем сделать очередную "капчу с картинкой."
Алгоритм работы капчи с картинкой.
Алгоритм работы капчи с картинкой до безобразия прост.
Создаем случайно данные(буквенно-цифровые)- помещаем это значение в переменную "$num_letter".
На основе этой переменной создаем картинку через php и выводим данную картинку, там, где нам это требуется.
В форме, в поле hidden помещаем эту переменную пропущенную через md5.
В пустом поле вводим данные с копченой картинки.
В php проверяем данные из поля "hidden" и теперь уже данные из поля "cap" пропускаем через md5
Протестировать капчу с картинкой через php/
Капча с картинкойкак сделать капчу с картинкойКапча с картинкой phpcaptcha с картинкамипример капчи картинкикапча в виде выбора картинкиCaptcha with php image