(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Генерация изображения со случайным кодом (captcha)

Источник: easywebscripts

Чаще всего изображения со случайным кодом (так называемая captcha) используются для защиты от флуда (автоматизированного ввода сообщений), некоторые сервисы находят им применнение в качестве раздражителя (для перехода на платный вариант). В общем, может пригодиться. PHP код следующий:

01$width = 100;               //Ширина изображения
02$height = 60;               //Высота изображения
03$font_size = 16;            //Размер шрифта
04$let_amount = 4;            //Количество символов, которые нужно набрать
05$fon_let_amount = 30;       //Количество символов на фоне
06$font "fonts/cour.ttf";   //Путь к шрифту
07 
08//набор символов
09$letters array("a","b","c","d","e","f","g");     
10//цвета
11$colors array("90","110","130","150","170","190","210"); 
12 
13$src = imagecreatetruecolor($width,$height);    //создаем изображение              
14$fon = imagecolorallocate($src,255,255,255);    //создаем фон
15imagefill($src,0,0,$fon);                       //заливаем изображение фоном
16 
17for($i=0;$i $fon_let_amount;$i++)          //добавляем на фон буковки
18{
19//случайный цвет
20$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
21//случайный символ
22$letter $letters[rand(0,sizeof($letters)-1)];
23//случайный размер                             
24$size = rand($font_size-2,$font_size+2);                                           
25imagettftext($src,$size,rand(0,45),
26rand($width*0.1,$width-$width*0.1),
27rand($height*0.2,$height),$color,$font,$letter);
28}
29 
30for($i=0;$i $let_amount;$i++)      //то же самое для основных букв
31{
32$color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],
33$colors[rand(0,sizeof($colors)-1)],
34$colors[rand(0,sizeof($colors)-1)],rand(20,40));
35$letter $letters[rand(0,sizeof($letters)-1)];
36$size = rand($font_size*2-2,$font_size*2+2);
37$x = ($i+1)*$font_size + rand(1,5);      //даем каждому символу случайное смещение
38$y = (($height*2)/3) + rand(0,5);                           
39$cod[] = $letter;                        //запоминаем код
40imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
41}
42 
43$cod = implode("",$cod);                    //переводим код в строку
44 
45header ("Content-type: image/gif");         //выводим готовую картинку
46imagegif($src);
Это максимально упрощенный вариант с использованием только одного шрифта и небольшого количества символов и цветов, хотя и этого бывает достаточно, чтобы оградиться от незатейливых спамеров и флудеров.

Через HTML такое изображение вызывается стандартно:

1<img src="sec_pic.php" alt="защитный код">

Скачать скрипт генерации защитного кода с полным набором символов и возможностью подключения своих шрифтов можно здесь secpic.zip


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 29.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
Business Studio 4.2 Enterprise. Конкурентная лицензия + Business Studio Portal 4.2. Пользовательская именная лицензия.
IBM Rational Functional Tester Floating User License
Allround Automation PL/SQL Developer - Annual Service Contract - Single user
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Мир OLAP и Business Intelligence: новости, статьи, обзоры
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100