Estuve revisando la FAQ's de como hacer el codigo de seguridad visual. Entonces me puse a hacerlo y a adaptarlo a mis necesidades. Esto es resultado de las adaptaciones:
Código PHP:
global $directory;
$codigo = $_SESSION['securitycod']; # recogemos el texto por el URL que enviamos a generar desde el link de imagen del HTML de nuestro formulario
$tipografias = array("font01","font02","font03","font04","font05"); # nombres tipografías a usar (sin extensión .ttf)
$tipografias_ruta = $directory."fonts\\"; # directorio donde estén las fuentes (ruta absoluta) importante el último
$espacio = 0; # inicializa eje X desde donde se empezará a dibujar el código (referente al tamaño de la caja)
$tamano_fuente = 15; # tamaño fuente
$profundidad_codigo = 10; # profundidad caracteres/digitos del código a generar (password) (alfanumericos)
$x=$profundidad_codigo*$tamano_fuente; # cálculo Ancho automático de la caja
$y=$tamano_fuente;
$im = imagecreate($x,$y); # Iniciar la generación de la imagen. Se define una caja de $x por $y pixels
# definición Colores. Expresados en valores R G B (respectivamente).
$color_fondo = imagecolorallocate($im, 255, 255, 255); # Blanco
$color_texto = imagecolorallocate($im, 0, 0, 0); # Negro
for($caracter=0; $caracter<$profundidad_codigo; $caracter++){
# seleccion de una tipografía aleatoria
$indice_aleatorio = array_rand($tipografias);
$tipografia = $tipografias_ruta.$tipografias[$indice_aleatorio].'.ttf';
# generar el caracter gráfico imagettftext($im,$tamano_fuente,0,$espacio,$tamano _fuente,$color_texto,$tipografia,$codigo{$caracter });
# separación entre caracteres
$espacio += $tamano_fuente;
}
# cabecera HTTP la cual indica al navegador que la imagen que estamos generando es .jpg
header('content-type: image/jpeg');
imagejpeg($im); # genera un JPG dinámico
imagedestroy($im); # destruye la imagen del servidor
en el fichero config.inc.php previamente includo en el archivo donde genero las imagenes tengo esto:
Código PHP:
# Nombre o IP del Servidor HTTP donde se haya publicado el sitio
$hostingserver = "http://10.5.2.28/jclub/";
# Nombre o IP del Servidor HTTP donde se haya publicado el sitio
$directory = "D:\\www\\jclub\\";
pero aqui no se si usar $directory o $hostingserver.
Antes de llamar el fichero genera_img.php
Código PHP:
$security = GeneraPasswd(10); # Esta funcion esta en la misma pagina por lo que no es necesario hacer include
$_SESSION['securitycod'] = $security;
y la imagen la llamo asi:
Código PHP:
<img src='libraries/thumbnails.php?do=generateimage' align='absmiddle'>
pero sorpresa cuando voy a ver la pagina lo que me sale es el titpico cuadrito con la cruz. Que hago mal ??
Salu2