Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/02/2004, 10:24
Section1
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 10 meses
Puntos: 1
He podido entender el funcionamiento, pero mis conocimientos no dan para llevarlo a la practica. Podrias darme un ejemplo, usando el codigo que tu ya mostraste en ese mensaje.

Codigo:

mm bueno .. no he visto tu problema concreto ahora mismo, pero .. jeje hice una funcioncita igual para el mismo cometído:

genera_password.php


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:WINDOWSFONTS\"; // 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

code:--------------------------------------------------------------------------------<!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>


Gracias por todo Cluster.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.

Última edición por Section1; 20/02/2004 a las 10:25