PHP CAPTCHA Generátor by Andrei
HELLO, MIZU?

a Rub This! TrueType Font letöltése
cap.php
<?php
// OPEN SOURCE CAPTCHA GENERATOR by Andrei
// HASZNÁLAT: cap.php?c=IDEJONAKODOLANDO
$font = "./rubthis.ttf";
$width = 200; // szélesség, ennek az 1/5-e a kódszöveg mérete
$height = 50; // hosszúság
$len = 6; // a kód hossza
$startchr = 21; // a kódrészlet véletlenszerű helye a karaktersorozatban
$image = imagecreate($width, $height);
// színek definiálása
// a fehér, vagy fehérnek látszó a képfelismerők miatt változik
// az emberi szem számára minimális a különbség
$bl = mt_rand(100,999); // véletlenszám a vakbarát szín kiválasztásához
if($bl/2 == intval($bl/2)) { $blind = 240 ; } else { $blind = 0;} //fekete az alapszín vagy fehér
$co = array(
imagecolorallocate($image,$blind+mt_rand(0,15), $blind+mt_rand(0,15),$blind+mt_rand(0,15)), // fehér
imagecolorallocate($image,255, 0, 0), // piros
imagecolorallocate($image,255,160, 0), // narancs
imagecolorallocate($image, 70,130,239), // kék
imagecolorallocate($image, 70,200, 80), // zöld
imagecolorallocate($image,100,100,100) // szürke
);
// a háttér feltöltése random szinekkel
for($x=0;$x<$width;$x++) {
for($y=0;$y<$height;$y++) {
$z = mt_rand(0,4); // véletlen szám generálása a háttér színéhez
imagesetpixel($image,$x,$y,$co[$z]);
}
}
$fcode = substr(sha1($_GET[c]),$startchr,$len); // a valódi kód
$bcode = substr(strrev(sha1($_GET[c])),$startchr,$len); // a háttérben látható kamu kód
imagettftext($image, $width/4, mt_rand(-3,3), 5+mt_rand(1,10), $height-10+mt_rand(1,10), $co[$z+1], $font, $bcode); // kamu kód kiiratása
imagettftext($image, $width/5, mt_rand(-3,3), 10+mt_rand(1,20), $height-13+mt_rand(1,10), $co[0], $font, $fcode); // valódi kód kiiratása
header('Content-type: image/png');
imagePNG($image);
imageDestroy($image);
?>
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>Captcha generátor by Andrei</title>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-2">
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="EN">
<META NAME="LANGUAGE" content="english">
<META NAME="DESCRIPTION" CONTENT="">
<META NAME="KEYWORDS" CONTENT="">
<head><body>
<?php
$ccc = mktime(); // ez lesz a c változó a captcha generátorban
$len = 6; // a kód hossza
$startchr = 21; // a kódrészlet véletlenszerű helye a karaktersorozatban
if($_POST[code] == substr(sha1($_POST[check]),$startchr,$len)) { // amennyiben az algoritmus ugyanazt számolta ki a küldött változóra, OK
echo "<h2>SIKERES BEVITEL!</h2>"; }
elseif ($_POST[code]){ // amennyiben volt kód beírva, de az nem egyezik
echo "<h2>VALAMI NEM STIMMEL!</h2>"; }
elseif (!$_POST[code] && $_POST[check]) { // amennyiben nem lett beírva kód, de az ürlap elküldésre került
echo "<h2>NEM ADOTT MEG KÓDOT!</h2>"; }
else { // amennyiben még semmit nem csinált a látogató
echo "<h2>HELLO, MIZU?</h2>"; }
// aztán jöhet az űrlap
// a check értéke azonos lesz a kép elérési útjában (src) található c-vel
?>
<img src="cap.php?c=<?php echo $ccc; ?>" alt="captcha" style="border:1px solid #AAA;" />
<br />
<form action="index.php" method=POST>
<input type="hidden" name="check" value="<?php echo $ccc; ?>" />
<input type="text" name="code" value="" />
<input type="submit" value="ok" />
</form>
</body></html>