S
Strings
Aqui os traigo un captcha realizado por mi y explicado.
Captcha.php
Index.php
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: