View file java/captcha.php

File size: 2.13Kb
<?php
Error_Reporting(0);
// создаем картинку размером 160X50
$img = imagecreatetruecolor(100, 30) or die('Cannot create image');
// заполняем фон картинки белым цветом
imagefill($img, 0, 0, imagecolorallocate($img, rand(235, 255), rand(235, 255), rand(235, 255)));
// Формируем фон шум (линии)
for($i = 0; $i < 10; ++$i){
	imageline($img, rand(0, 40), rand(0, 50), rand(60, 100), rand(0, 50),
	imagecolorallocate($img, rand(100, 255), rand(100, 255), rand(100, 255)));
}
// Формируем цифры на картинке
$sum = '';//Переменная для формировки цифр на картинке
$x=10;//Начальная координата оси X для текста
for($i = 0; $i < 5; ++$i){//выводим одну цифру за один проход цикла (всего 5 цифр)
	imagestring (
	$img,
	5,
	rand($x-5,$x+5), rand(0,15), // координаты (x,y), соответствующие левому нижнему
	$rnd=rand(0,9),// случайная цифра от 0 до 9
	imagecolorallocate($img, rand(0,128), rand(0,128), rand(0,128))); // цвет шрифта
	$x+=18;//увеличили отступ для следующего символа
	$sum.= $rnd;// Собираем в одну строку все символы на картинке
}
// Формируем шум (линии)
for($i = 0; $i < 5; ++$i){
	imageline($img, rand(0, 40), rand(0, 50), rand(60, 100), rand(0, 50),
	imagecolorallocate($img, rand(100, 255), rand(100, 255), rand(100, 255)));
}
// Формируем шум (пиксели)
for($i = 0; $i < 50; ++$i){
	imagesetpixel($img, rand(0, 100), rand(0, 30), imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255)));
}
setcookie('captcha',md5($sum),time()+3600,'/');
//Тип содержимого – картинка формата PNG 
header('Content-type: image/png');
imagepng($img);// выводим готовую картинку в формате PNG
imagedestroy($img);// освобождаем память, выделенную для картинки
?>