Урок 47. Капча. Часть 1

Дата публикации: 05-12-2014

Чтобы иметь доступ к просмотру всех уроков этого курса, оформите подписку в премиум раздел
каталог товаров

От автора: В этом и следующем уроке мы реализуем классический вариант капчи для формы регистрации. Что представляет собой классический вариант, полагаю, знаете. Это картинка с шумом, на которой выводится строка, состоящая из нескольких букв и цифр. Именно эту строку пользователь должен прочесть и ввести в соответствующее поле для подтверждения того, что он не бот.

lesson

Все уроки курса:

Метки: ,

Комментарии (6)

  1. general_83_2008@mail.ru

    Добрый день. На этом уроке сделал как и вы, но, к сожалению, картинка не хочет отображать на ней текст. Просто белая картинка и все. Скопировал вчистую все из исходников — результат тот же. Может перестали работать эти функции?

    • Андрей

      Добрый день. В документации к функции imagettftext посмотрите описание параметра fontfile. Перед вызовом функции imagettftext добавьте предлагаемые две строки кода, в самой функции параметр с именем шрифта замените переменной $font, в которой выше определите шрифт — это должно решить проблему.

      • bar2002cool@hotbox.ru

        Добрый день. Столкнулся с данной проблемой, выдает ошибку «Warning: imagettftext(): Could not find/open font in D:\OSPanel\domains\jgoods.loc\libs\captcha\captcha.php on line 14″, я работаю на локальном сервере Open Server версия php-7.2-x64, однако ошибку на данной версии php победить не удалось, пробовал добавлять строки из мануала, прописывать путь с «./arial.ttf», убирать .ttf как написано в мануале, но не помогло. Нашел временное решение, в настройках Open Server поменял версию php на php 5.6-x64 и всё сразу заработало. Однако, это не выход, необходимо найти решение для 7-ых версий php…

        • Андрей

          Здравствуйте. Не нужно ничего мудрить с путями и пытаться как-то их прописать. Если не работает вариант из исходников курса, тогда нужно пробовать вариант из документации, при этом пробовать точно так, как он написан в документации, т.е. не так «./arial.ttf» и не так «./arial», а вот так:
          putenv('GDFONTPATH=' . realpath('.'));
          $font = 'arial';

          Если и это все же не поможет — ну тогда нужно смотреть Ваш проект на Вашем же сервере, поскольку у меня такой проблемы на моем сервере нет. Используется PHP 7 — скриншот.

          • Борис Пелевин

            Оказывается, версия php 7.0 и у меня работает, я когда тестил, использовал сначала 7.2 потом 7.1 потом сразу перескочил на 5.6 (7.0 пропустил), а putenv(‘GDFONTPATH=’ . realpath(‘.’));
            $font = ‘arial’; я попробовал в первую очередь, потом сутки искал причину, перелопатил кучу форумов, однако однозначного ответа не нашел… Сегодня установил последнюю версию Open server 5.2.9 с офф. сайта, но проблема сохраняются, я склоняюсь к тому, что всё-таки это сборки php 7.1-7.2 дают сбой…

          • Андрей

            Вполне возможно. В документации других вариантов решения проблемы нет, поэтому, если момент с такой капчей и версией PHP > 7.0 принципиален, тогда нужно гуглить проблему в поисках решения.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree