Ayuda con Firma Dinámica!

Hola gente!

Ayer encontré por la red varios tutoriales para hacer una Firma Dinámica, y decidí ponerme a ello.

Encontré 2 tutoriales, uno aquí en EOL y otro Googleando en otro foro.

Los he seguido casi a rajatabla ambos tutoriales, pero el resultado es que en ambos casos, las imágenes no se me muestran.

Éste es el resultado que me queda:
Imagen

Como véis he hospedado las imágenes y el .php en Iespana, es el único lugar al cual conseguí registrarme sin problemas, y eso que probé otros 5 sitios (incluido Lycos, donde no me aparecía el Captcha para rellenar ._.).

Os pongo los códigos de .php para que me digáis si es que he copiado algo mal o vete tu a saber :\

Código de EOL:
[PHP]<?
$max = 20;
$filename = "firma%s";

$rndnum = rand(1, $max);
$file = sprintf($filename, $rndnum);
header ( "Content-type: image/jpeg" );
readfile ( "firmas/" . $file . ".jpg");

exit;
?> [/PHP]


El Otro Código:
[PHP]<?
$font="./h.TTF";
/* So */
$dir="./firmas/"; //t
$types=array('jpg'=>'jpeg','jpeg'=>'jpeg','pjpeg'= >'jpeg','png'=>'png');
$dh=opendir($dir);
while($data=readdir($dh)){
if($data=='..' || $data=='.' || is_dir($dir.$data))
continue;
$temp_ext=explode('.',strrev($data),2);
$temp_ext=strrev($temp_ext[0]);
if($types[$temp_ext] || $_GET['debug'])
$sigs[]=$data;
}
mt_srand((double)microtime()*10000000);
$i=mt_rand(0,(count($sigs)-1));
$sig=$dir.$sigs[$i];
$ext=explode('.',strrev($sig),2);
$ext=strrev($ext[0]);
$type=$types[$ext];
if(!$type){
header('content-type: image/jpeg');
$im=imagecreate(500,100);
$white=imagecolorallocate($im,255,255,255);
$black=imagecolorallocate($im,0,0,0);
imagefill($im,0,0,$white);
imagettftext($im,13,0,0,10,$black,$dir.$font,'Exte nsión del archivo inaceptable'.$ext);
imagejpeg($im,'',100);
imagedestroy($im);
}else{
header("Content-Type: image/{$type}");
readfile($sig);
}
?> [/PHP]


¿Alguna sugerencia?
Si conocéis algún otro tutorial que creáis que va mejor, pues genial :P

Por cierto, la firma dinámica se compone de 20 imágenes distintas. En el primer código está especificado, en el segundo no hay límite.

PD: Sí, la Firma Dinámica es para ponerla en EOL.
PD2: Hace falta un Subforo de Diseño Gráfico o algo donde postear estas cosas, que he dudado entre varios subforos antes de venir aquí xD
PD2: Hace falta un Subforo de Diseño Gráfico o algo donde postear estas cosas, que he dudado entre varios subforos antes de venir aquí xD


Prueba aquí XD
Pues algún problema habrá, porque intento guardar el .php en mi disco y me salén un monton de líneas de código extraño.

Te recomiendo usar 110mb. Creas una carpeta llamada firmas, subes todas las imágenes al directorio (se tienen que llamar firma1.jpg, firma2.jpg...) y subes el php a la raiz del ftp:

[PHP]<?
$max = 20;
$filename = "firma%s";

$rndnum = rand(1, $max);
$file = sprintf($filename, $rndnum);
header ( "Content-type: image/jpeg" );
readfile ( "firmas/" . $file . ".jpg");

exit;
?> [/PHP]
darkrocket escribió:Pues algún problema habrá, porque intento guardar el .php en mi disco y me salén un monton de líneas de código extraño.

Te recomiendo usar 110mb. Creas una carpeta llamada firmas, subes todas las imágenes al directorio (se tienen que llamar firma1.jpg, firma2.jpg...) y subes el php a la raiz del ftp:

[PHP]<?
$max = 20;
$filename = "firma%s";

$rndnum = rand(1, $max);
$file = sprintf($filename, $rndnum);
header ( "Content-type: image/jpeg" );
readfile ( "firmas/" . $file . ".jpg");

exit;
?> [/PHP]



Pues es como lo tengo en iespana. ¿Puede que sea culpa del Hosting y no de código?
Esta noche cambio a 110mb como me has recomendado a ver que sucede (ahora estoy en el curro :P)
yo uso uno que hice...supongo que se puede mejorar xD
<?php
$img[1] = 'URL';
$img[2] = 'URL';

header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-type: image/gif');

$imagen = @imagecreatefrompng($img[rand(1,2)]);
imagegif($imagen);
imagedestroy($imagen);
?>


tendrias que editar esta linea
$imagen = @imagecreatefrompng($img[rand(1,2)]);

el rand(1,2), ese 1 equivale al valor del ultimo $img[] no me explico muy bien lo siento te pongo un ejemplo mejor xD, digamos que quieres 5 img, tendrias que poner esto:

$img[1] = 'URL';
$img[2] = 'URL';
$img[3] = 'URL';
$img[4] = 'URL';
$img[5] = 'URL';


tendrias que poner en en rand(); esto: rand(1,5)

el rand se encarga que poner numeros aleatorios (1,2,3,4,5)

una cosa, las img tendrian que ser PNG(todas) tambien podrias jpeg,bmp y gif, tendrias que cambiar el imagecreatefrompng por:

imagecreatefromgif: si todos son GIF
imagecreatefromjpeg: si todos son JPEG

tampoco es que sea un experto en PHP osea que si hay algun error es normal [+risas]
Muchas gracias a todos, el problema estaba en el servidor de iespana que por lo que sea no permite hacer estas cosas.

He logrado registrarme en 110mb como me recomendó darkrocket (y me ha costado, ya que el mail de verificación no me llegaba hasta nunca...) y ahora va todo como la seda.

Gracias!
5 respuestas