<Р> Давайте начнем с создания файла captcha.php. Этот файл будет создан фотографию с текстом, написанным на нем
<р> заголовок ('Content-Type: изображение /JPEG.
'); //JPEG изображение будет выводиться $ ширина = 60; //Ширина изображения $ высоты = 24; //Высота картинной $ my_image = imagecreatetruecolor ($ ширина, высота) $; //Создание полноцветных изображений imagefill ($ my_image, 0, 0, 0xffffff); //Белый фон
<р> До сих пор нам удалось создать образ, который имеет белый фон, 60 пикселей в ширину и 24 пикселей в высоту.
Давайте добавим несколько исказил:
<р> для ($ C = 0; $ C $ х = рандов (0, $ ширина-1); $ у = рандов (0, $ высота-1); imagesetpixel ($ my_image , $ х, $ у, 0x000000);}
<р> Мы вставляется 40 черные пиксели в изображении Эти пиксели будут иметь различные coordonates каждый раз картина загружается
<р> Давайте напишем текст на.. картина:..
<р> $ х = рандов (1,10); //Х coordonate в верхнем левом углу $ у = рандов (1,10); //Y coordonate в верхнем левом углу $ rand_string = рандов (10000,99999); //Получаем число между 10000 и 99999 imagestring ($ my_image, 5, $ х, $ у, $ rand_string, 0x000000); //Записываем число, полученное ранее на картинке
<р> Давайте сохраним строку, написанное на изображения в печенье. Мы будет читать этот печенье раз в формы, представленный для сравнения данных.
<р> SetCookie ("куки-CAPTCHA на" (MD5 ($ rand_string)) , время () + 3600, "/"); imagejpeg ($ my_image); //Создание изображений JPEG ImageDestroy ($ my_image); //Удалить изображений JPEG
<р> В этом примере имя куки является печенья -captcha, его содержание будет MD5 кодируется значение случайной строки, полученной ранее (число написано на картинке), то это будет действителен в течение часа на всех ваших доменов.
<р> Картина будет удален (ImageDestroy ), чтобы сохранить пространство на сервере
<р> Полный файл captcha.
php будет:
<р> заголовок ("Content-Type: изображение /JPEG.); $ ширина = 60; $ высота = 24; $ my_image = imagecreatetruecolor ($ ширина, $ высота); imagefill ($ my_image, 0, 0, 0xFFFFFF); для ($ C = 0; $ C $ х = рандов (0, $ ширина-1); $ у = рандов (0, $ высота-1); imagesetpixel ($ my_image, $ х, $ у, 0x000000);} $ х = рандов (1,10); $ у = рандов (1,10); $ rand_string = рандов (10000,99999); imagestring ($ my_image, 5, $ х, $ у, $ rand_string, 0x000000); SetCookie ("куки-CAPTCHA на" (MD5 ($ rand_string)), время () + 3600, "/"); imagejpeg ($ my_image); ImageDestroy ($ my_image);?>