poner imagenes aleatorias de fondo a un captcha
Publicado por Sam (185 intervenciones) el 09/04/2015 18:51:09
Hola amigos, a ver si me pueden ayudar con esto:
Tengo un codigo que me genera captchas de manera aleatoria, y lo hace bien, pero solo me cambian las letras y numeros pero siempre con el mismo fondo.
Agradeceria si me pudieran ayudar a como hacer para que la imagen de fondo de dichos captchas tambien fuesen aleatorias.
Y una cuestion mas, ¿esta bien poner al final de este codigo "imagedestroy($imagen);"?
Gracias de antemano.
Miren este es el codigo que tengo:
Tengo un codigo que me genera captchas de manera aleatoria, y lo hace bien, pero solo me cambian las letras y numeros pero siempre con el mismo fondo.
Agradeceria si me pudieran ayudar a como hacer para que la imagen de fondo de dichos captchas tambien fuesen aleatorias.
Y una cuestion mas, ¿esta bien poner al final de este codigo "imagedestroy($imagen);"?
Gracias de antemano.
Miren este es el codigo que tengo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
header('Content-Type: image/png');
//$array_aleatorio = array("fondo_captcha_1.png", "fondo_captcha_2.png");
//$img_aleatoria = array_rand($array_aleatorio, 2);
//$imagen = @imagecreatefrompng("../../imgs/".$img_aleatoria);
$imagen = @imagecreatefrompng("../../imgs/fondo_captcha_1.png");
$color_fondo = imagecolorallocate($imagen, 255, 255, 255);
$color_letras = imagecolorallocate($imagen, 0, 0, 0);
function generate_captcha($letras, $length)
{
$texto = null;
for ($x=0; $x<$length; $x++)
{
$rand = rand(0, count($letras)-1);
$texto .= $letras[$rand];
}
return $texto;
}
$texto = generate_captcha(array(
0,1,2,3,4,5,6,7,8,9,
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
//'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
), 5);
setcookie('cookie_captcha', sha1($texto), time()+60*3);
$fuente = '../../fonts/ChopinScript.ttf';
imagettftext($imagen, 40, 0, 30, 39, imagecolorallocate($imagen, 0, 0, 0), $fuente, $texto);
imagepng($imagen);
imagedestroy($imagen);
Valora esta pregunta


0