Fichero index.php <? // Generación del código $cadena = ""; for($i = 0; $i < 10; $i++) $cadena .= chr(rand(65, 90)); ?> <html> <head> <script type="text/javascript" language="javascript"> function comprobarReferencia() { // Lectura del valor de campo texto = document.getElementById('campo').value; // Si no hay texto se avisa al usuario if(texto == '') alert('Introduce el texto que ves en la imagen.'); // En caso de haber texto se comprueba si coincide con el código else if(texto == '<? echo $cadena ?>') alert('Código correcto.'); else alert('El código es incorrecto.'); document.getElementById('campo').focus(); } </script> </head> <!-- No se utiliza una hoja de estilos, por no añadir más archivos al ejemplo --> <body style="background-color: #EEF0FF"> <div style="background-color: #FEFEFE; width: 400px; padding: 10px; marginleft: auto; margin-right: auto; margin-top: 200px;"> <p>Introduce el c&oacute;digo que ves en la imagen para demostrar que eres un humano genuino y no una copia :P</p> <table align="center"><tr> <td><img src="antispam.php?texto=<?echo $cadena?>" align="left" /></td> <td><input id="campo" type="text" size="14"></td> <td><input type="button" value="Validar" onclick="comprobarReferencia();"/></td> </tr></table> </div> </body> </html> Fichero antispam.php <?php $cadena = ""; $cadena = $_GET['texto']; if($cadena != "") { // Crea una imagen de 100*30 $im = imagecreate(110, 24); // Fondo azul claro y texto azul oscuro $fondo = imagecolorallocate($im, 220, 230, 255); $colortexto = imagecolorallocate($im, 100, 110, 205); // Escribe la cadena en la parte superior imagestring($im, 5, 10, 4, $cadena, $colortexto); // Muestra la imagen header('Content-type: image/png'); imagepng($im); imagedestroy($im); } ?>