SphinX Опубликовано 1 Апреля 2005 Жалоба Поделиться Опубликовано 1 Апреля 2005 Данная статейка посвящена изменению кода безопасности IPB 2, выводимого при регистрации и предназначенного для предотвращения автоматических регистраций спам-ботов. Мы будем изменять код безопасности, выводимый при помощи GD lib.Для начала удостоверимся, что в Админцентре » Системных настройках » Безопасности опция Включить защиту от ботов? выставлена на "Продвинутый" режим. Как и указано, для корректной работы этого типа защиты от ботов необходима установленная на сервере библиотека GD. Если возникают проблемы с отображением кода безопасности в данном режиме - очевидно, на хостинге отсутствует GD lib. Трясите хостера в случае чего. Итак, заменим стандартный шрифт на любой другой TTF-шрифт, сотни которых можно слить в инете, настроим его размер, угол наклона. Для начала в папке с форумом, где лежит index.php, создадим директорию, к примеру, fonts, а в неё загрузим нужные TTF-шрифты. желательно дать им всем простые короткие имена файлов, маленькими буквами, чтобы потом не путаться с регистром. Функция, отвечающая за вывод кода безопасности в GD-режиме называется show_gd_img и лежит в файле functions.php. Начинаем копать functions.php. Вы ведь уже сделали его резервную копию? 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);Вот тут начинается подгонка шрифта под картинку Поясняю:SIZE - заменяем на размер шрифта в пунктахANGLE - угол наклона строки в градусахX - координата X нижнего левого угла первого символа в строкеY - координата Y нижнего левого угла первого символа в строке/path/font.ttf - путь относительно корневой директории форума до файла шрифтаЛично я путём недолгих мытарств подобрал такие подходящие мне значения:imagettftext($tmp, 22, 13, 1, 64, $black, "/font/mt.ttf", $content); Что получилось, можете увидеть здесь Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 11 Мая 2005 Жалоба Поделиться Опубликовано 11 Мая 2005 Вот такая схема работает, а приведенный выше рецепт нет. Почему ? <? header("Content-type: image/png"); $im = @imagecreate (500, 500) or die ("Cannot Initialize new GD image stream"); $background_color = imagecolorallocate($im, 0, 0, 255); $text_color = imagecolorallocate($im, 0, 255, 255); imagettftext($im, 20, 45, 200, 200, $text_color, "/font/bt.ttf","1234567890"); imagepng($im); ?> [1115844467:1115847070]причина в этом if ( $ibforums->vars['gd_version'] == 2 ) по умолчанию там стоит 1, а если специально ставилась GD 2.0.x, то могут быть проблемы Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dr.Freddy Опубликовано 16 Мая 2005 Жалоба Поделиться Опубликовано 16 Мая 2005 К сожалению, не функционирует. Функция просто ничего не рисует. replicant, можно подробнее про ваш фикс? Я не совсем понял.[1116255642:1116260672]Провел серию тестов, не работает ни с GD1, ни с GD2. Кто-нибудь ещё пробовал менять шрифт? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 16 Мая 2005 Жалоба Поделиться Опубликовано 16 Мая 2005 Dr.Freddy, а у тебя библиотека FreeType установлена? error.log проверь... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
NvG Опубликовано 17 Мая 2005 Жалоба Поделиться Опубликовано 17 Мая 2005 SphinX, ты меня смешишь НУ КАКОЙ /path/font.ttf, когда надо path/font.ttf или ./path/font.ttf? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
SphinX Опубликовано 21 Мая 2005 Автор Жалоба Поделиться Опубликовано 21 Мая 2005 Вообще работать по-любому будет... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
terrarist Опубликовано 4 Июля 2005 Жалоба Поделиться Опубликовано 4 Июля 2005 SphinXслушай а скинь такое дело как сделать такой чат как у тебя на форуме. Что то он так понравился. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GrayWarrior Опубликовано 4 Июля 2005 Жалоба Поделиться Опубликовано 4 Июля 2005 terraristПоиск по запросу: D2 ShoutBox Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 8 Августа 2005 Жалоба Поделиться Опубликовано 8 Августа 2005 А для 1.3.1 можно? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
piratechnik Опубликовано 8 Августа 2005 Жалоба Поделиться Опубликовано 8 Августа 2005 Я начал менять скины и у меня пропал код подверждения , воспользовался вашим методом , результатов нет ! Что могло случиться ! gd менял , ставил как 1 так и 2 ! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DANMASTER Опубликовано 13 Августа 2005 Жалоба Поделиться Опубликовано 13 Августа 2005 Так что нельзя? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 17 Августа 2005 Жалоба Поделиться Опубликовано 17 Августа 2005 Тоже интересует для 1.3 8) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 17 Августа 2005 Жалоба Поделиться Опубликовано 17 Августа 2005 Дык так же и для 1.3 сделайте. В админке включаем продвинутую защиту от ботов, лезем в functions.php Ищем функцию function show_gd_img($content="")Там пишем совершенно такие же параметры для imagettftext. (подбираем для себя)Ищем хороший шрифт, свои цвета - "чёрный", "белый" и "серый"например $white = ImageColorAllocate($im, 19, 19, 19); радуемся красоте Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 30 Августа 2005 Жалоба Поделиться Опубликовано 30 Августа 2005 Шрифт изменил а вот красивую фигурку и наклон цифр в 1.3 никак немогу 8( Какие шрифты более рагульны чтоб разбирать только в трезвом виде можно было? И где их скачать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dr.Freddy Опубликовано 20 Сентября 2005 Жалоба Поделиться Опубликовано 20 Сентября 2005 Не понял, а зачем тебе в 1.3.1 этот мод? Там же есть в админке поле для указания TTF-шрифта регистрации. Что до мода — попробовал, под себя подогнал (проблемы были с локальным апачем — поборол). Единственный нюанс — путь к шрифту надо прописывать не /path/font.ttf, а ROOT_PATH."path/font.ttf". Так универсальнее. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
OverHerz Опубликовано 27 Марта 2006 Жалоба Поделиться Опубликовано 27 Марта 2006 хочу просто добавить - в 2.1.5 изменения нужно делать в файле /source/ipsclass.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Zhezl Опубликовано 27 Марта 2006 Жалоба Поделиться Опубликовано 27 Марта 2006 Сделал похитрее. Вместоimagettftext($tmp, 22, 13, 1, 64, $black, "/font/font.ttf", $content);Сотворил этоsrand((double) microtime()*1000000); imagettftext($tmp, 22, rand(5 , 15), rand(1 , 80), rand(50 , 64), $black, "/font/font.ttf", $content); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
~* L O V E R *~ Опубликовано 27 Марта 2006 Жалоба Поделиться Опубликовано 27 Марта 2006 Zhezl а поподробнее, что именно ты добавил? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Zhezl Опубликовано 27 Марта 2006 Жалоба Поделиться Опубликовано 27 Марта 2006 Наклон и положение числа меняются случайно в заданных пределах. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Zhezl Опубликовано 29 Марта 2006 Жалоба Поделиться Опубликовано 29 Марта 2006 Еще исхитрился1. Делаем всё как в первом посте. 2. Случайно гоняем и крутим надпись по картинке: Добавляем еще цветного шума:$circles = 3;Меняем на $circles = 5; Этоimagettftext($tmp, 22, 13, 1, 64, $black, "/font/font.ttf", $content); Меняем на это: srand((double) microtime()*1000000); $angle_pn = rand (1,2); if ( $angle_pn == 1 ) { imagettftext($tmp, 22, rand(5 , 15), rand(1 , 80), rand(50 , 64), $black, "/font/font.ttf", $content); } else { imagettftext($tmp, 22, (-1 * rand(5 , 15)), rand(1 , 80), rand(20 , 40), $black, "/font/font.ttf", $content); } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 29 Марта 2006 Жалоба Поделиться Опубликовано 29 Марта 2006 2 Zhezl не отработало на 2.0, картинка не сгенерилась: Loaded Image и все Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Zhezl Опубликовано 30 Марта 2006 Жалоба Поделиться Опубликовано 30 Марта 2006 На 2.1.5 работает без пробелем.Пример тут: forum.yasnet.ru Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pikachu Опубликовано 9 Апреля 2006 Жалоба Поделиться Опубликовано 9 Апреля 2006 на 2.0.4 ни один из вариантов у меня не работает... loading image висит постоянно (были проделывал дикие манипуляции с путями и опробывано штук 10 разных шрифтов) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
OverHerz Опубликовано 9 Апреля 2006 Жалоба Поделиться Опубликовано 9 Апреля 2006 пост #5 читали? тоже не работает? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
pikachu Опубликовано 9 Апреля 2006 Жалоба Поделиться Опубликовано 9 Апреля 2006 OverHerz: Я всю тему перерыл, пробывал всё, что только можно. Надеюсь "защита от ботов - Продвинутая" в админке форума подразумевает gd2 ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.