Всех друзей поздравляем с Новым годом! Всего вам самого наилучшего! Всех благ, здоровья а материальное приложится!
СКРИПТЫ althtmlcssphpjsblog

Капча с картинкой

Поддержи проект!!!

Капча с картинкой через php! Мы будем делать капчу с картинкой! Нам нужна капча с картинкой, чтобы использовать в форме!

Начнем с самого начала и разберем весь процесс создания капчи с картинками через php!

Навигация по странице :
  1. Картинки для капчи с картинкой
  2. Форма для капчи с картинкой.
  3. Вывод картинки для капчи с картинкой
  4. Получение слова и названия картинки
  5. Код капчи с картинкой в сборе
  6. Живой пример капчи с картинкой
  7. Капча из картинок для сайта
  8. Скачать можно здесь


    Картинки для капчи с картинкой

  1. Для капчи с картинкой нам понадобятся эти самые картинки! У нас в скрипте, который будет обрабатывать нашу капчу с картинками будет всего 6 картинок, размер картинки 100х100px:
  2. Капча с картинкой Капча с картинкой Капча с картинкой Капча с картинкой Капча с картинкой Капча с картинкой


    Форма для капчи с картинкой.

  3. Форму будем отправлять методом пост(method="post"), экшен пустой(action=""), ели в принципе он пустой, то его можно уже и не указывать -форма должна срабатывать и без этого!
  4. У нас будет два инпута(input), первый тип текст type="text", в котором будем заполнять название животного, которое будет выведено. И второй скрытый type="hidden", в который будем получать слово, которое будет принадлежать данной картинке - это будет переменная $slovo, как и откуда берется эта переменная и что внутри, в следующем пункте.

    <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>


    Вывод картинки для капчи с картинкой

  5. Нам потребуется для вывода картинок массив, в каждой ячейке котрого будет находится название картинки, вывод которых приведен выше:
  6. $array = array('slon','kot','krokodile','mish','petuh','kon');
    Далее нам понадобится функция array_rand, которая будет выбирать одно слово случайным образом из нашего массива:
    $array_rand = array_rand($array, 1);
    Когда мы получили одно значение из этого массива, слово на латинице нужно проверить, чему оно равно, если например это слово slon , то переменная $slovo будет равно слову слон

    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], попробуйте несколько раз перезагрузить страницу!

    petuh

    А вторым слово echo $slovo

    петух

    И третьим уже выведем эту картинку таким образом:

    <img border="1px solid" width="100px" height="100" src="//dwweb.ru/__img/php/kapcha/'.$array[$array_rand].'.jpg" title="'.$slovo.'">

    И результат:


    Получение слова и название картинки

  7. Поскольку мы помним, что поля у нас два 1).текст, 2). скрытое, в котором попадает название картинки на английском.
  8. $text_kapcha = strip_tags(trim($_POST['text_kapcha']));

    $hidden = strip_tags(trim($_POST['hidden']));

    Далее идет проверка того, что было отослано в форме! Если в поле $text и $hidden одинаковые значения, то Все верно, если нет - ответ не правильный!

    if($_POST['otpravit'])

    {

    if($text_kapcha == $hidden)

    {

    $show = '<b style="color: red">Все верно</b><br>';

    }

    else

    {

    $show = '<b style="color: red">Ответ не правильный!</b><br>';

    }

    }


    Код капчи с картинкой в сборе

  9. Теперь нам осталось собрать выше перечисленный код в готовый код для капчи с картинкой!
  10. $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="//dwweb.ru/__img/php/kapcha/'.$array[$array_rand].'.jpg" title="'.$slovo.'">

    <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> ';


    Живой пример капчи с картинкой

  11. Пожалуйста напишите
    если сомневаетесь наведите мышку на картинку



  12. Как сделать капчу из нескольких картинок

    Если вам очень хочется сделать капчу из нескольких картинок, ну чтож, это тоже можно сделать!

    Это делается из того материала, что приведен выше!

    И капча с несколькими картинками - это наверняка настолько круто, что только круче яйца вкрутую!

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

    Алгоритм создания капчи с множеством картинок

    Предположим, что вы хотите сделать такую как у Google. Делать, я такую капчу, конечно же не буду, но примерный алгоритм могу набросать...

    Вам понадобится как минимум
    1). 9 полей вывода картинки
    2). + 9 полей input, куда будут передаваться данные по нажатию на картинку, и нужно продумать скрипт, который будет отслеживать нажатие - отжатие картинки
    3). и плюс еще 9 полей ввода hidden, далее просто 9 + 9

    Далее вам нужно... как-то зафиксировать передаваемый данные в поля hidden... это должен быть массив из 9 ячеек с заранее записанными данными... в них... например если тема кошки... то определяете сколько кошек.. и сколько не кошек, и отслеживаете соответствии отправленных данных 9 + 9

    Вывести какой-то алгоритм рандомно выводить в поле hidden выше приведенные значения массива.

    Далее нужно создать, ну как минимум массивов 10 с разными категориями, что аналогично теме "кошек", например -массив "собаки", массив "машины" и т.д...

    Далее нужен алгоритм, который будет рандомно выбирать массив...

    Это если очень кратко...

    Капча с картинкой

    Итого... ну нах...

    Мне очень не нравится такая капча, если она выскакивает где угодно! Есть намного проще и экономичные варианты, чем городить такой огород! Ну, а вы - можете потренироваться!

И да...мы ранее уже делали капчу цифровую + капчу со словами


Вас может еще заинтересовать список тем : #PHP | #PHP_POST | #PHP_METHOD | #CAPTCHA | #PHP_BOOK |
Последняя дата редактирования : 2020-03-28 11:20
Название скрипта :Капча с картинкой
Скрипт № 10.1
Пример
Ссылка на скачивение: Все скрипты на одной странице
https://dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no
Еще никто не прокомментировал! COMMENTS+   BBcode
аватар
🞨
Загрузить свой аватар
(max ширина, высота = 200px)

Подписаться + =
Теги:
Капча с картинкойкак сделать капчу с картинкойКапча с картинкой phpcaptcha с картинкамипример капчи картинкикапча в виде выбора картинки

Последние комментарии :
Марат :
08/08/2020 08:59
Нам в очередной раз добавили десяточку, теперь у нас …
подробнее.
Марат :
02/08/2020 12:22
Никогда не задавался такой целью, сделать "клик без onclick"!Как мне кажется, "onclick" и придумали, чтобы отследить…
подробнее.
Darya :
01/08/2020 10:52
А можно сделать клик без…
подробнее.
Марат :
12/07/2020 11:14
Превратите код в html…
подробнее.
Владимир :
11/07/2020 10:29
Строка не прошла, как ее написать…
подробнее.