mm bueno .. no he visto tu problema concreto ahora mismo, pero .. jeje hice una funcioncita igual para el mismo cometído:
genera_password.php Código PHP:
<?php
/*
Función: Genera passwords aleatorios (numéricos o alfanuméricos).
Entrada: Logintud: (digitos/caracteres a generar), tipo: [numerio|alfanumerico]
Salida: Devuelve string.
*/
function genera_password($longitud,$tipo="alfanumerico"){
if ($tipo=="alfanumerico"){
$exp_reg="[^A-Z0-9]";
} elseif ($tipo=="numerico"){
$exp_reg="[^0-9]";
}
return substr(eregi_replace($exp_reg, "", md5(time())) .
eregi_replace($exp_reg, "", md5(time())) .
eregi_replace($exp_reg, "", md5(time())),
0, $longitud);
}
// Configuración.
// Nombres tipografías a usar (sin extensión .ttf)
$tipografias = array("arial","comic","times");
// Directorio donde estén las fuentes .. (ruta absoluta)
// (importante el último /o \ según corresponda.
// (Las fuentes son True Type (.ttf)
$tipografias_ruta = "C:\WINDOWS\FONTS\\"; // Windows.
// $tipografias_ruta="/home/sito/public_html/fonts/"; // Linux (*NIX)
// Inicializa eje X desde donde se empezará a
// "dibujar" el código. (referente al tamaño de la "caja")
$espacio = 0;
// Tamaño fuente.
$tamano_fuente = 15;
// Profundidad caracteres/digitos del código a generar (password).
$profundidad_codigo = 8; // (alfanuméricos)
// Rutina ...
// Generamos un código (password) aleatorio.
$codigo=genera_password($profundidad_codigo);
// Cálculo Ancho automático de la "caja"
$x=$profundidad_codigo*$tamano_fuente;
$y=$tamano_fuente;
// Iniciar la generación de la imagen. Se define una "caja" de $x por $y pixels.
$im = imagecreate ($x, $y);
// 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. Indica al navegador que la imagen que estamos generando es .PNG
header("Content-type: image/png");
// Generar Imagen (un .png Dinámico.)
imagepng ($im);
// Destruir imagen (de memoria .. va a ser enviada directamente al navegador).
imagedestroy ($im);
?>
Y su forma de uso .. ejemplo:
demo.html
Código:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
El password:
<img src="genera_password.php">
</body>
</html>
Cada vez que se llame a "genera_password.php" se genera una nueva contraseña .. Si recargas página lo puedes comprobar.
Uso la función de generar password aleatorio alfanumérico (o numérico) que está en las FAQ's del foro (y que dejé yo mismo por allá también xD) ..
La función usa várias tipografías (fuentes .ttf) para generar cada uno de los caracteres/numeros que forman el password .. así se hace más dificil el tema xDDD..
Un saludo,