+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.51 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

29.06.2012 16:02

Чаще всего изображения со случайным кодом (так называемая 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
  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года