Stuff » Codeschnipsel » PHP » Rechen-Captcha

Beschreibung:
Ein einfaches Captcha, das Additions- und Subtraktionsaufgaben generiert. Es kann beispielsweise als PHP-Datei gespeichert und dann eingebunden werden. Die Verarbeitung wird hier nicht erläutert.
Code:

<?php
session_start
();
unset(
$_SESSION["rechen_captcha_spam"]);
$zahl1 rand(10,20); // First number, 10-20
$zahl2 rand(1,10);  // Second number, 1-10
// note: the second number is lower than the first one to prevent negative values as results
$operator rand(1,2); // + or -

if($operator == "1"){
   
$operatorzeichen " + ";
   
$ergebnis $zahl1 $zahl2;
}else{
   
$operatorzeichen " - ";
   
$ergebnis $zahl1 $zahl2;
}

function 
encrypt($string$key) {
$result "";
for(
$i=0$i<strlen($string); $i++) {
   
$char substr($string$i1);
   
$keychar substr($key, ($i strlen($key))-11);
   
$char chr(ord($char)+ord($keychar));
   
$result.=$char;
}
return 
base64_encode($result);
}

$_SESSION["rechen_captcha_spam"] = 
    
encrypt($ergebnis"7o2r9jf6z5kd9g5g21"); //Key
$_SESSION["rechen_captcha_spam"] = 
    
str_replace("="""$_SESSION["rechen_captcha_spam"]);
        
$rechnung $zahl1.$operatorzeichen.$zahl2." = ?";
$img imagecreatetruecolor(80,15);
$schriftfarbe imagecolorallocate($img,13,28,91);
$hintergrund imagecolorallocate($img,239,239,239);
imagefill($img,0,0,$hintergrund);
imagestring($img320$rechnung$schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

Ausgabe:

Hier klicken