Hola, hace tiempo necesitaba un captcha o conocido como anti spam, me cree uno, aquí se los dejo.
Con un par de funciones ya lo tenemos
Captcha.php
<?php
session_start(); # iniciamos la sesion
$numero = rand(1000,9999); # generamos un numero
$_SESSION['codigo'] = $numero; # guardamos el numero en la sesion
# senalamos que el documento va ser una imagen
header("Content-type: image/png");
# declaramos im con la creacion de una imagen
$im = imagecreate(80, 25);
# indicamos el color del fondo (RGB)
$fondo = imagecolorallocate($im, 0, 0, 0); # el color del fondo seria blanco, se puede editar
# indicamos el color del texto (RGB)
$texto = imagecolorallocate($im, 255, 255, 255); # el color de las letras seria blanco, se puede editar
# creacion del texton dentro de la imagen
imagestring($im, 12, 20, 5, $_SESSION['codigo'], $texto);
# se crea la imagen, la imagen sera PNG
imagepng($im);
?>
¿Cómo usarlo?
Formulario.php
<?php
if($_POST['enviar']){
session_start(); # iniciamos la sesion
if($captcha == $_SESSION['codigo']) # comprobamos que el campo captcha, sea igual que el codigo generado
{
echo("Codigo ingresado: correcto"); # Si todo sale bien
}else{
echo("Codigo ingresado: incorrecto"); # Si el codigo introducido en incorrecto
} }
?>
<img src="Captcha.php"><br>
<form name="form1" method="post" action="">
<input type="text" name="captcha">
<input type="submit" name="enviar">
</form>
Espero que les sirva, saludos