<?php /* Alcuni parametri configurabili */
$boxW=128; // Larghezza immagine
$boxH=32; // Altezza immagine
$codelen=6; // Lunghezza del codice
$snow=4; // effetto neve 0=no, o intero % copertura
/* Dichiara che lo stream trasmesso �un file immagine PNG */
header("Content-Type: image/png"); /* inizializza il generatore di numeri casuali */
srand((double)microtime()*1000000); session_start(); /* Crea un codice di verifica casuale e lo immagazzina nella sessione in modo che processform.php possa recuperarlo */
$num1=rand(0,10); $num2=rand(0,10);
$somma=$num1+$num2;
$string="$num1 + $num2";
$_SESSION[somma] = $somma; /* Creazione immagine di dimesioni $boxW x $boxH */
$im = ImageCreate($boxW, $boxH); /* Colori */
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0); /* Riempie lo sfondo di nero */
ImageFill($im, 0, 0, $black); /* seleziona un font a caso tra quelli di sistema */
$font=rand(3,5); /* Calcola ampiezza scritta */
$w=strlen($string)*ImageFontWidth($font);
$h=ImageFontHeight($font); /* Posizione casuale */
$x=rand(1,($boxW-$w-1)); $y=rand(1,($boxH-$h-1)); /* scrive nell'immagine la stringa di controllo */
ImageString($im, $font, $x, $y, $string, $white); /* output al browser*/
ImagePNG($im); /* Distruggo l'immagine in memoria */
ImageDestroy($im);
?>