Comunidad PHPeros
Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: phpmysql en 06 de Abril de 2007, 20:47:05 pm
-
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
-
Para los que no lo sepan, es el típico sistema en el que se genera una imagen con unos numeros o letras y debes introducirlos para poder enviar el formulario.
Muy útil :P, yo tambien tuve que crearme uno hace tiempo aunque tuve problema para integrar la imagen al contenido web, no recordaba que se hacia mediante <img src="image.php"> xD
-
jajajaj, a mi lo que me salia era cómo validar el número dado con el formulario :P después de varios intentos me salió xD
-
lee veo asi como un pequeño error, a simpel vista, no esta declarada la variable $captcha
-
Si lo está pero realmente debería ser $_POST['captcha']....
-
Para los que no lo sepan, es el típico sistema en el que se genera una imagen con unos numeros o letras y debes introducirlos para poder enviar el formulario.
Muy útil :P, yo tambien tuve que crearme uno hace tiempo aunque tuve problema para integrar la imagen al contenido web, no recordaba que se hacia mediante <img src="image.php"> xD
xD haveces lo más simple no se recuerda :P
Saludos crack, gracias por tu aportación...KARMA+