Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как вывести капчу без искажений символов, или почему не работает fluctuation_amplitude=0 в antibot.php ?

Как вывести капчу без искажений символов, или почему не работает fluctuation_amplitude=0 в antibot.php ?


     01.11.2015    Общие вопросы по PHP, Ламерские вопросы    1695

вопрос
Подскажите, пожалуйста, как полностью отключить искажение символов в капче? Изменение значения$fluctuation_amplitude с дефолтного на 0,1,2 в antibot.php только уменьшает искажения, но не убирает его полностью!

Ответил: Sander


$fluctuation_amplitude - это смещение по оси Y.
Т.е. чтобы буквы прыгали вверх-вниз.

Чтобы убрать искажение, найти строку
        $rand10=mt_rand(330,450)/100;

После нее вставить:
$rand9 = 0;
$rand10 = 0;

Это полностью уберет искажение текста.
Можете поиграться, обнуляя только одну переменную.

5 комментариев

prpobed5
Юзер

prpobed5 - 2 ноября 2015 11:03 -

Sander, спасибо! Текст действительно теперь не искажает! Но одинаковые символы капчи не получаются, так как в папке Fonts антибота лежит три разных версии одного шрифта, и антибот берет случайный шрифт для вывода каждого символа. В итоге символы, то толще, то тоньше, с засечками или без. Как корректнее, - удалить два щрифта из трех или где-то в коде антибота отключить использование нескольких шрифтов?

ПафНутиЙ
Админ

ПафНутиЙ - 2 ноября 2015 11:13 -

Скопируйте нужный шрифт и переименуйте.

Каков вопрос - таков и ответ. Просто помните об этом.

prpobed5
Юзер

prpobed5 - 2 ноября 2015 12:12 -

Тоже вариант ) Но все таки, если править изначально только antibot.php. К сожалению, мои познания в php близки к нулю, корректным ли будет такое выражение $font_file=$fonts[1]; вместо верхней строчки в цитате...

$font_file=$fonts[mt_rand(0, count($fonts)-1)];
$font=imagecreatefrompng($font_file);
imagealphablending($font, true);

Sander
PHP-developer

Sander - 2 ноября 2015 17:35 -

$font_file=$fonts[mt_rand(0, count($fonts)-1)];

заменить на
$font_file=$fonts[0];

Всегда будет браться первый шрифт.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

prpobed5
Юзер

prpobed5 - 3 ноября 2015 10:29 -

Sander, спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх