[code]
<?php
session_start();
//если нажата кнопка
if(isset($_POST['go'])){
$captcha_user = sha1(trim($_POST['captcha']));
//проверяем совпадает ли
if($captcha_user == $_SESSION['pass_captcha']){
echo '<h1>Введенно верно!!</h1>'; exit;
}else{
echo '<h1>Введенно не верно!!Попробуйте еще раз!</h1>';
}
}
?>
<b>Проверка: </b> <img src='captcha.php'><br />
<form method="post">
<input type="text" name="captcha" />
<input type="submit" name="go" value="go" />
</form>
[/code]
Назовем captcha.php
<?php
session_start();
//запускаем сессию,в ней будем хранить "ключ"
##################СОЗДАНИЕ ТЕКСТА ДЛЯ КАПЧИ##################
//Длину текста каптчи сохраняем в константах
define('COUNT',6); //6 вполне достаточно
$pass = '';
//генерируем
for ($i = 0; $i < COUNT; $i++){
$pass .= chr(rand(97,122));
}
//в итоге в переменной $pass будет хранится текст каптчи
//сохраняем в сессий в зашифрованном виде
$_SESSION['pass_captcha'] = sha1($pass);
#########################CОЗДАНИЕ САМОЙ КАПТЧИ
//РАзмеры каптчи сохраняем в константах
define('WIDTH',120); //ШИРИНА
define('HEIGHT',25); //ВЫСОТА
//Создаем изображение
$img = imagecreatetruecolor(WIDTH,HEIGHT);
//УСТААНАВЛИВАЕМ ЦВЕТА:белый фон,черный текст,серая графика
$fon = imagecolorallocate($img,255,255,255); //белый
$text = imagecolorallocate($img,0,0,0); //черный
$graphic = imagecolorallocate($img,64,64,64); //серый
//ЗАПОЛНЯЕМ ФОН
imagefilledrectangle($img,0,0,WIDTH,HEIGHT,$fon);
//РИСОВАНИЕ НЕСКОЛЬКИХ ТОЧЕК,РАСПОЛОЖЕННЫХ СЛУЧАЙНО
for($i = 0; $i < 50; $i++){
imagesetpixel($img,rand() % WIDTH, rand() % HEIGHT,$graphic);
}
//РИСОВАНИЕ НЕСКОЛЬКИХ ЛИНИЙ,РАСПОЛОЖЕННЫХ СЛУЧАЙНО
for($i = 0; $i < 5; $i++){
imageline($img,0,rand() % HEIGHT, WIDTH, rand() % HEIGHT,$graphic);
}
//ПИШЕМ ТЕКСТ
imagettftext($img,18,0,5,HEIGHT-5,$text,'BROADW.ttf',$pass);
//BROADW.ttf шрифт кинуть в ту-же папку,замените на свое усмотрение
//вывод изображения в png
header("Content-type: imаge:png");