(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
Zend Server with Z-Ray Developer Edition - Standard
Kerio Operator - Server (incl 5 users, 1 yr SWM)
NERO 2016 Platinum ESD. Электронный ключ
ESET NOD32 Parental Control – универсальная лицензия на 1 год для всей семьи
FastReport FMX 2 Single
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Компьютерный дизайн - Все графические редакторы
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ для студентов (245)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Разработка программ базы данных (54)
Написание прикладных компьютерных программ (базы данных) на заказ. Разработка корпоративных...
 
Беговая дорожка (3)
Купила беговую дорожку вот здесь https://4gym.com.ua/product/technogym-artis-run Очень классная,...
 
Аналоги виагры (3)
Если мужчине, по каким либо причинам, не подходит виагра, существуют качественные аналоги...
 
работа на дому! (8)
Доброго времени суток дорогие друзья. Многоуровневый маркетинг окончательно признан...
 
 
 



    
rambler's top100 Rambler's Top100