Este es el código que puse para el captcha, el cual funciona, pero omite todo lo que hay en el body, es decir solo muestra el captcha.
Código PHP:
Ver original// Configuración:
$N = 2; // Nivel de emborronado { 2, 3, 4, ... }
$J = 100; // Calidad JPEG { 0, 1, 2, 3, ..., 100 }
$M = 5; // Margen.
$L = 6; // Número de letras.
$C = FALSE; // Case sensitive.
// Acceso a los objetos de sesión:
// Indicamos que vamos a generar una imagen ¡no una página HTML!
header("Content-type: image/jpeg");
// Inicializamos cualquier posible valor previo de captcha:
$_SESSION['CAPTCHA'] = '';
// Metemos tantos caraceteres aleatorios como sean precisos:
for( $n = 0; $n < $L; $n++ )
$_SESSION['CAPTCHA'] .= C();
// Si no es case sensitive lo ponemos todo en minúsculas:
if( ! $C )
$_SESSION['CAPTCHA'] = strtolower( $_SESSION['CAPTCHA'] );
// Dimensiones del captcha:
// Creamos una imagen:
// La rellenamos de blanco:
// Elegimos aleatoriamente un ángulo de emborronado:
$A = ( rand() % 180 ) / 3.14;
// Realizamos iteraciones de emborronado:
for( $n = 0; $n < $N; $n++ ) {
// Factor de interpolación, va de 1.0 a 0.0
$t = 1.0 - $n / ( $N - 1.0 );
// El radio se va centrando a medida que se hace nítido:
$r = $M * $t;
// El color va siendo cada vez más oscuro:
$c = 255 * $t;
// Trazamos dos líneas aleatorias para dificultar más las cosas:
// Pasamos un filtro gaussiano:
// Dibujamos el texto en el sentido del ángulo y radio de desplazamiento:
imagestring( $i, 5, $M + $r * cos( $A ), $M + $r * sin( $A ), $_SESSION['CAPTCHA'], $c );
// Pasamos otro filtro gaussiano:
}
// Escribimos la imagen como un JPEG en el buffer de salida:
// Liberamos la imagen:
// Devuelve un caracter aleatorio:
function C() {
$W = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
}