|
Новичок
Регистрация: 02.04.2008
Сообщений: 7
Провел на форуме: 99827
Репутация:
0
|
|
Нашёл скрипт для защиты от авторегистрации. Картинку с кодом выводит, а как сделать так, чтобы извлечь сам код не знаю. Может кто подскажет?
PHP код:
<?php
// старт сессии
session_start();
// заголовок
header("Content-type: image/png; charset=windows-1251;");
// создание изображения
$img = imagecreate(120,60);
// генерация цвета фона
$ren_r = rand(190,255);
$ren_g = rand(190,255);
$ren_b = rand(190,255);
// настройка цвета фона
$slfon = ImageColorAllocate($img, $ren_r, $ren_g, $ren_b);
//-------------------------------- ШУМЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// начальное значение циклов
$i = 1;
// включение шумов
$ellipse = 1;
$rectang = 1;
$line = 1;
$pix = 1;
/* Шум из элипсов */
if($ellipse) {
$varelp = rand(5,50);
while(++$i <= $varelp)
{
$ren_left = rand(0,150);
$ren_top = rand(0,60);
$ren_x_rad = rand(0,150);
$ren_y_rad = rand(0,60);
// генирация цвета фона
$ren_elp_r = rand(150,225);
$ren_elp_g = rand(150,225);
$ren_elp_b = rand(150,225);
// настройка цвета фона
$elp = ImageColorAllocate($img, $ren_elp_r, $ren_elp_g, $ren_elp_b);
imageellipse ($img, $ren_left, $ren_top, $ren_x_rad, $ren_y_rad, $elp);
}
}
/* Шум из прямоугольников */
if($rectang) {
$varrect = rand(5,50);
while(++$i <= $varrect)
{
$ren_x1_rect = rand(0,120);
$ren_y1_rect = rand(0,60);
$ren_x2_rect = rand(0,120);
$ren_y2_rect = rand(0,60);
// генирация цвета фона
$ren_rect_r = rand(150,225);
$ren_rect_g = rand(150,225);
$ren_rect_b = rand(150,225);
// настройка цвета фона
$rect = ImageColorAllocate($img, $ren_rect_r, $ren_rect_g, $ren_rect_b);
imagerectangle ($img, $ren_x1_rect, $ren_y1_rect, $ren_x2_rect, $ren_y2_rect, $rect);
}
}
/* Шум из линий */
if($line) {
$varline = rand(0,50);
while(++$i <= $varline)
{
$line_x1 = rand(0,120);
$line_y1 = rand(0,60);
$line_x2 = rand(0,120);
$line_y2 = rand(0,60);
// генирация цвета линий
$ren_line_r = rand(0,200);
$ren_line_g = rand(0,200);
$ren_line_b = rand(0,200);
// настройка цвета линий
$line_c = ImageColorAllocate($img, $ren_line_r, $ren_line_g, $ren_line_b);
// настройка цвета линий
imageline ($img, $line_x1, $line_y1, $line_x2, $line_y2, $line_c);
}
}
/* Шум из пикселей */
if($pix) {
$varpix = rand(10,150);
while(++$i <= $varpix)
{
$pix_x = rand(0,120);
$pix_y = rand(0,60);
// генирация цвета линий
$ren_pix_r = rand(0,255);
$ren_pix_g = rand(0,255);
$ren_pix_b = rand(0,255);
// настройка цвета линий
$pix_c = ImageColorAllocate($img, $ren_pix_r, $ren_pix_g, $ren_pix_b);
ImageSetPixel($img, $pix_x, $pix_y, $pix_c);
}
}
//-------------------------------- ЦИФРЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// генерация чисел на изображении
$ren_c1 = rand(0,9);
$ren_c2 = rand(0,9);
$ren_c3 = rand(0,9);
$ren_c4 = rand(0,9);
$ren_c5 = rand(0,9);
// массив из цифр
$code_mass = array($ren_c1,$ren_c2,$ren_c3,$ren_c4,$ren_c5);
// формирование числа
$code = implode("", $code_mass);
// запись числа в сессию
$_SESSION['imgcode'] = $code;
// отпуск от левого края, слова
$ren_xp = rand(0,5);
// расстояние между буквами
$ras_bukv = 21;
// случайный размер букв
$ot_fs = 25;
$do_fs = 30;
// случайная положение y слова
$yb_ot = 20;
$yb_do = 60;
// генерация цвета текста 1
$ren_r_с1 = rand(0,150);
$ren_g_с1 = rand(0,150);
$ren_b_с1 = rand(0,150);
// генерация цвета текста 2
$ren_r_с2 = rand(0,150);
$ren_g_с2 = rand(0,150);
$ren_b_с2 = rand(0,150);
// генерация цвета текста 3
$ren_r_с3 = rand(0,150);
$ren_g_с3 = rand(0,150);
$ren_b_с3 = rand(0,150);
// генерация цвета текста 4
$ren_r_с4 = rand(0,150);
$ren_g_с4 = rand(0,150);
$ren_b_с4 = rand(0,150);
// генерация цвета текста 5
$ren_r_с5 = rand(0,150);
$ren_g_с5 = rand(0,150);
$ren_b_с5 = rand(0,150);
// настройка цвета текста
$c1 = imagecolorallocate ($img, $ren_r_с1, $ren_g_с1, $ren_b_с1);
$c2 = imagecolorallocate ($img, $ren_r_с2, $ren_g_с2, $ren_b_с2);
$c3 = imagecolorallocate ($img, $ren_r_с3, $ren_g_с3, $ren_b_с3);
$c4 = imagecolorallocate ($img, $ren_r_с4, $ren_g_с4, $ren_b_с4);
$c5 = imagecolorallocate ($img, $ren_r_с5, $ren_g_с5, $ren_b_с5);
// случайный поворот букв
$ren_turn1 = rand(-35,35);
$ren_turn2 = rand(-35,35);
$ren_turn3 = rand(-35,35);
$ren_turn4 = rand(-35,35);
$ren_turn5 = rand(-35,35);
// случайная положение y буквы
$ren_ht1 = rand($yb_ot,$yb_do);
$ren_ht2 = rand($yb_ot,$yb_do);
$ren_ht3 = rand($yb_ot,$yb_do);
$ren_ht4 = rand($yb_ot,$yb_do);
$ren_ht5 = rand($yb_ot,$yb_do);
// случайная положение x буквы
$ren_x1 = rand(0 + $ren_xp,$ras_bukv + $ren_xp);
$ren_x2 = rand($ras_bukv + $ren_xp,$ras_bukv*2 + $ren_xp);
$ren_x3 = rand($ras_bukv*2 + $ren_xp,$ras_bukv*3 + $ren_xp);
$ren_x4 = rand($ras_bukv*3 + $ren_xp,$ras_bukv*4 + $ren_xp);
$ren_x5 = rand($ras_bukv*4 + $ren_xp,$ras_bukv*5 + $ren_xp);
// случайная размер буквы
$ren_fase1 = rand($ot_fs,$do_fs);
$ren_fase2 = rand($ot_fs,$do_fs);
$ren_fase3 = rand($ot_fs,$do_fs);
$ren_fase4 = rand($ot_fs,$do_fs);
$ren_fase5 = rand($ot_fs,$do_fs);
// массив со шрифтами
$fonts = array('ARS','BETINA','BRUSHSCR','BASKR_LI');
$sf = count($fonts);
$sf = $sf - 1;
// случайный шрифт 1
$ren_fc1 = rand(0,$sf);
$ren_font1 = $fonts[$ren_fc1] . ".ttf";
// случайный шрифт 2
$ren_fc2 = rand(0,$sf);
$ren_font2 = $fonts[$ren_fc2] . ".ttf";
// случайный шрифт 3
$ren_fc3 = rand(0,$sf);
$ren_font3 = $fonts[$ren_fc3] . ".ttf";
// случайный шрифт 4
$ren_fc4 = rand(0,$sf);
$ren_font4 = $fonts[$ren_fc4] . ".ttf";
// случайный шрифт 5
$ren_fc5 = rand(0,$sf);
$ren_font5 = $fonts[$ren_fc5] . ".ttf";
// настройка цифры 1
imagettftext ($img, $ren_fase1, $ren_turn1, $ren_x1, $ren_ht1, $c1, $ren_font1, $ren_c1);
// настройка цифры 2
imagettftext ($img, $ren_fase2, $ren_turn2, $ren_x2, $ren_ht2, $c2, $ren_font2, $ren_c2);
// настройка цифры 3
imagettftext ($img, $ren_fase3, $ren_turn3, $ren_x3, $ren_ht3, $c3, $ren_font3, $ren_c3);
// настройка цифры 4
imagettftext ($img, $ren_fase4, $ren_turn4, $ren_x4, $ren_ht4, $c4, $ren_font4, $ren_c4);
// настройка цифры 5
imagettftext ($img, $ren_fase5, $ren_turn5, $ren_x5, $ren_ht5, $c5, $ren_font5, $ren_c5);
//--------------------------- ВЫВОД ИЗОБРАЖЕНИЯ -----<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ImageFill($img, 0, 0, $slfon);
Imagepng($img);
// разрушение изображения
ImageDestroy($img);
?>
|