[code]
<?
class SomCaptcha {	
	function maakSom() {
		# de getallen en operator maken
		$getallen = array("nul", "&eacute;&eacute;n", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen");
		$plusmin = array("plus", "min");
	
		$getal1 = rand(1, 9);
		$getal2 = rand(1, $getal1-1);
		$plusofmin = rand(0, 1);
	
		# de som maken
		$plusmin = $plusmin[$plusofmin];
		$goedantwoord = ($plusofmin == 0 ? $getal1 + $getal2 : $getal1 - $getal2);
		
		# getallen voluit geschreven
		$getal1 = $getallen[$getal1];
		$getal2 = $getallen[$getal2];
		
		# alles samen gooien in array en plaatsten in een sessie
		$som = array("getal1" => $getal1, "plusofmin" => $plusmin, "getal2" => $getal2,"goedantwoord" => $goedantwoord);
		$_SESSION = $som;
	}
	
	function haalAntwoord() {
		return $_SESSION['goedantwoord'];
	}
	
	function schrijfSom() {
		return $_SESSION['getal1'] . " " . $_SESSION['plusofmin'] . " " . $_SESSION['getal2'];
	}
	
	function checkAntwoord($invoer) {
		if(empty($invoer)) return false;
		if(!is_numeric($invoer)) return false;
		if($invoer == $this->haalAntwoord())
			return true;
		else
			return false;
	}
}
?>[/code]

En zo kan het gebruikt worden:

[code]
<?
if($_SERVER['REQUEST_METHOD'] == "POST") {
	echo '<p>je hebt ingevoerd: <strong>' . $_POST['antwoord'] . '</strong>, en het goede antwoord is: <strong>' . $_SESSION['goedantwoord'] . '</strong>.</p>';
	echo '<p>Het antwoord dat je hebt invoed is: <strong>' . ($captcha->checkAntwoord($_POST['antwoord']) ? "GOED" : "FOUT") . '</strong></p>';
} else {
	$captcha->maakSom(); #maakt de Som en gelijk de sessie
	echo "<p>de uitkomst van <strong>" . $captcha->schrijfSom() . "</strong> is:</p>";
	echo '
<form method="post" action="">
	<input type="text" name="antwoord" />
	<input type="submit" value="verstuur" /> (antwoord numeriek invoeren)
</form>';
}[/code]
?>

[/code]
