catbegemot
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Оригинал тут, автор SphinX Для начала удостоверимся, что в Админцентре » Системных настройках » Безопасности опция Включить защиту от ботов? выставлена на "Продвинутый" режим. Как и указано, для корректной работы этого типа защиты от ботов необходима установленная на сервере библиотека GD2. Если возникают проблемы с отображением кода безопасности в данном режиме - очевидно, на хостинге отсутствует GD2 lib. Трясите хостера в случае чего. Итак, заменим стандартный шрифт на любой другой TTF-шрифт, сотни которых можно слить в инете, настроим его размер, угол наклона. Для начала в папке с форумом, где лежит index.php, создадим директорию, к примеру, fonts, а в неё загрузим нужные TTF-шрифты. желательно дать им всем простые короткие имена файлов, маленькими буквами, чтобы потом не путаться с регистром. Функция, отвечающая за вывод кода безопасности в GD-режиме называется show_gd_img и лежит в файле /source/ipsclass.php (для версий 2.1.х) 1. Во-первых, сведём на нет последствия умышленного растягивания изображения скриптом. Находим: Код: $tmp_x = 140; $tmp_y = 20; $image_x = 210; $image_y = 65; | И сделаем, чтобы число попарно совпадали, например: Код: $tmp_x = 210; $tmp_y = 65; $image_x = 210; $image_y = 65; | Это чтобы изображение не растягивалось и эстетический эффект от юзания кульного TTF шрифта не омрачался. Всё равно с таким количеством шума на картинке ни один спам-бот это несчастное число не распознает. 2. Теперь находим это: Код: imagestring($tmp, 5, 0, 2, $content, $black); | Теперь самое главное! Заменяем на: Код: //New sKool TTF Security Code: imagettftext($tmp, SIZE, ANGLE, X, Y, $black, "/path/font.ttf", $content); | Вот тут начинается подгонка шрифта под картинку smile.gif Поясняю: SIZE - заменяем на размер шрифта в пунктах ANGLE - угол наклона строки в градусах X - координата X нижнего левого угла первого символа в строке Y - координата Y нижнего левого угла первого символа в строке /path/font.ttf - путь относительно корневой директории форума до файла шрифта Лично я путём недолгих мытарств подобрал такие подходящие мне значения: Код: imagettftext($tmp, 22, 13, 1, 64, $black, "/font/mt.ttf", $content); | От себя лично: цЫферки могут не совпадать с приведенными в статье, бо все шрифты разные. Впрочем, я за 3 минуты подобрал устраивающую меня комбинацию, так что думаю большого труда это не составит.
|