to wklej np w plik generujacy obrazek captcha:
obrazek.php
<?php
$fontDir = 'fonts/'; // katalog z czcionkami
$fontFiles = array('verdana.ttf', 'impact.ttf', 'comic.ttf', 'arial.ttf'); // nazwy u�ywanych plik�w czcionek $imgType = 'png'; // format wyswietlanej grafiki (png, gif, jpeg)
$length = 6; // d�ugos� losowego ci�gu
$backColor = '#ffffff'; // kolor t�a grafiki
$fontColor = '#2a2a2a'; // kolor czcionki
$dotsColor = '#c0c0c0'; // kolor plam ;-)
for($i = 0; $i < strlen($token); $i++) {
if(($token{$i} >= 'a' and
$token{$i} <= 'z') and
(rand(0
, 10
) > 5
)) {
}
}
$_SESSION['token'] = $token;
function make_color($img, $color)
{
{
for($i = 0; $i < 6; $i += 2)
{
$rgb[] = (int
)hexdec($color{$i}.$color{$i + 1
}); }
return imagecolorallocate($img, $rgb[0], $rgb[1], $rgb[2]);
}
else
{
return 0;
}
}
header('Content-type: image/'.$imgType);
$width = strlen($token) * 15
+ 10; $height = 25;
$img = imagecreate($width, $height);
$back = make_color($img, $backColor);
$font = make_color($img, $fontColor);
$dots = make_color($img, $dotsColor);
for($i = 0; $i < round($width / 1
.5
); $i++) {
{
imageellipse
($img, $x, $y, rand(2
, 7
), rand(3
, 6
), $dots); $pts[] = $x.'_'.$y;
}
else
{
$i--;
}
}
for($i = 0; $i < strlen($token); $i++) {
imagettftext
($img, rand(14
, 16
), rand(-10
, 10
), rand(3
, 5
) + $i * 15
, 20
+ rand(-3
, 3
), $font, $fontDir.'/'.$fontFiles[rand(0
, count($fontFiles) - 1
)], $token{$i}); }
switch($imgType)
{
case 'jpeg':
imagejpeg($img);
break;
case 'gif':
imagegif($img);
break;
default:
imagepng($img);
break;
}
imagedestroy($img);
?>
odwolujesz sie do niego np <img src="obrazek.php" alt="captcha" />
a sprawdzasz kod wyslany w formularzu za pomoca
<?php
if($_SESSION['token'] == $_POST['kod_z_obrazka']){
}else{
}
?>