Вот сценарий картинки, которая показывает сгенерированный случайным образом номер - код.
Кроме этого в сессии появляется переменная $_SESSION["code"], которая содержит этот номер.
Просите пользователя ввести его в поле формы, а потом сверяете со значением переменной сессии.
И все!
<?php
// Размеры картинки
$sizeX = 100;
$sizeY = 40;
// Создание изображения
$img = imagecreatetruecolor($sizeX, $sizeY);
// Получение кода
session_start();
$code = $_SESSION["code"];
// Количество пикселей на 1 символ кода
$space = $sizeX / strlen($code);
// Назначение цветов
$background = imagecolorallocate($img, 255, 255, 255);
$border = imagecolorallocate($img, 127, 127, 127);
$colors[] = imagecolorallocate($img, 127, 64, 192);
$colors[] = imagecolorallocate($img, 192, 64, 127);
$colors[] = imagecolorallocate($img, 107, 192, 64);
// Закраска фона
imagefilledrectangle($img, 0, 0, $sizeX, $sizeY, $background);
// Рисуем рамку
imagerectangle($img, 0, 0, $sizeX-1, $sizeY-1, $border);
// Пишем цифры кода
for ($i = 0; $i < strlen($code); $i++) {
$color = $colors[$i % count($colors)];
imagestring($img, 5, ($i + 0.3) * $space,5 + rand(0, 15), substr($code, $i, 1), $color);
//imagettftext($img, 14 + rand(0, 4), -20 + rand(0, 40), ($i + 0.3) * $space, 20 + rand(0, 15), $color, 'arial.ttf', substr($code, $i, 1));
}
// Рисуем шум
for ($i = 0; $i < 250; $i++) {
$x1 = rand(0, $sizeX);
$y1 = rand(0, $sizeY);
$x2 = $x1;
$y2 = $y1;
imageline($img, $x1, $y1, $x2, $y2, $colors[rand(0, count($colors) - 1)]);
}
// Отправка заголовков
header("Content-type: image/png");
// Вывод изображения
imagepng($img);
?>
|
|