Captcha

S

Strings

Aqui os traigo un captcha realizado por mi y explicado.
Captcha.php
PHP:
<?php
session_start();
header('Content-Type: image/png'); // Tipo de imagen

$img = imagecreate(200,50); // Creo la imagen de 150x50
$color_fondo = imagecolorallocate($img, 255,255,255); // Este es el color del fondo(El primero siempre es el color del fondo)
$naranja = imagecolorallocate($img, 255,165,0); // Color naranja
$negro = imagecolorallocate($img, 0,0,0); // Color negro

// Crear puntos
for($i = 0; $i < 700; $i++):
    $x = rand(0,200); // Numero aleatorio de 0 a 200 (lo que mide el largo)
	$y = rand(0,50); // Numero aleatorio de 0 a 50 (lo que mide el alto)
    imagesetpixel($img, $x, $y, $negro); // Muestro los puntos
endfor;

// Crear numeros aleatorios
$number = '';
for($i = 0; $i < 6; $i++):
    $number .= substr('qQwWeErRtTyYuUiIoOpPlLkKjJhHgGfFdDsSaAzZxXcCvVbBnNmM1029384756',rand(0,62), 1); // Genero los numeros aleatorios
endfor;
    $font = array('fuente0.ttf','fuente1.ttf','fuente2.ttf','fuente3.ttf'); // Array con las distintas fuentes
    $_SESSION['captcha'] = $number;
	$number_rand = $font[rand(0,3)]; // Elige la fuente aleatoriamente
    imagefttext($img, 20, 0, 50, 35, $naranja, $number_rand, $number); // Muestro los numeros aleatorios

// Crear lineas horizontales
for($i = 0; $i < 3; $i++):
	$y1 = rand(0,50); // Numero aleatorio de 0 a 50 (lo que mide el alto)
	$y2 = rand(0,50); // Numero aleatorio de 0 a 50 (lo que mide el alto)
    imageline($img, 0, $y1, 200, $y2, $negro); // Muestro las lineas
endfor;

// Crear lineas verticales
for($i = 0; $i < 3; $i++):
	$x1 = rand(0,200); // Numero aleatorio de 0 a 200 (Lo que mide el ancho)
    imageline($img, $x1, 0, $x1, 50, $negro); // Muestro las lineas verticales
endfor;

imagepng($img);
imagedestroy($img); // Destruyo la imagen
?>

Index.php
PHP:
<?php
session_start();
if(isset($_POST['submit'])):
    if($_SESSION['captcha'] == $_POST['captcha']):
	    echo 'Captcha correcto';
	else:
	    echo 'Captcha incorrecto';
	endif;
endif;
?>
<form action="" method="post">
    <img src="/captcha.php"></img><br>
    <input name="captcha" placeholder="Introduce el captcha">
	<input name="submit" type="submit">
</form>
 
Última edición por un moderador:
S

Strings

Si, "Captcha incorrecto"
Se podria poner que apareciese error "El captcha esta vacio", pero es solo para comprobar que funciona el captcha.

Algunos siempre intentan buscar "la parte negativa"
 
Última edición por un moderador:

jonii

Delta
Desde
15 May 2010
Mensajes
571
A mi me parece correcto. Parametros normales. El diseño va en gustos (tampoco la pavada), pero si esta bueno.
 

Gustavito

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Abr 2013
Mensajes
1.213
No se ve la imagen :( 555.png
 

Xkeeper

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
17 Dic 2012
Mensajes
419
No lo pruebo aún porque no tengo idea de cómo funciona php, espero empezar en estos días. Gracias por el aporte :encouragement:.
 
Arriba