Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/10/2003, 16:35
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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 ($im255255255); // Blanco
    
$color_texto imagecolorallocate ($im000); // 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_fuente0$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,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.