Que es esto?
Es un lugar donde escribo lo que hago (casi) todos los dias. Es lo que soy.
Es parte de Peorth.com.ar, aunque en otro idioma.
Queres saber más sobre mi?
Elige tu Diosa...
Green Peorth [12356 personas]
Blue Belldandy [17378 personas]
Green Peorth [9026 personas]
Black Urd [9589 personas]
Red Skuld [7377 personas]
Pink Belldandy [14210 personas]
Violet Urd [3907 personas]

23 May 2004

Firmas dinamicas

por Andrea, en:  — 9:23 pm

En el foro de mensajes de Enigmamusic (un site dedicado al grupo musical Enigma), tengo configurado como firma un script en PHP que lo que hace es rotar imgenes. Entonces, cada vez que ingresa alguien al post, va a ver imgenes diferentes, hacindolo un poco mas divertido. En este sencillo post, voy a ensearles como pueden hacer algo similar para sus pginas o para poner como firma en foros de mensajes (solo requiere PHP).

Firmas dinmicas - refresca para ver otras imagenes
[ Firma dinmica - refresc para ver otra imgen]


Lo primero es lo primero: necesitamos las imgenes que vamos a rotar. Personalmente, en mi caso, son capturas de video del DVD de Enigma, pero puede ser cualquier cosa que ustedes prefieran. Una vez que hayamos seleccionado las imgenes, las guardamos todas en el mismo directorio con un prefijo, un nmero, por ej:

sig1.jpg
sig2.jpg
sig3.jpg

Una vez que tenemos nuestras imgenes, creamos un archivo con extensin PHP que contenga el siguiente cdigo:

<?php

$max = 11; //numero maximo de imagenes
$filename = "sig%s"; //nombre de nuestras imagenes

$rndNum = rand(1, $max);
$file = sprintf($filename, $rndNum);

header ( "Content-type: image/jpeg" );

readfile ( "imagenes/" . $file . ".jpg");

exit;
?>

El script tiene 3 puntos importantes a tener en cuenta

  1. La variable max debe tener la cantidad total de archivos. Entonces, si tenemos 3 archivos, ingresamos 3.
  2. El Content-type debe ser consistente con nuestros tipos de archivos – si nuestros archivos son JPG, debe ser image/jpeg, en cambio, si son GIF, debe ser images/GIF. El script no soporta que algunos archivos sean de un tipo, y otros de otro tipo.
  3. La funcin readfile debe contener el directorio real donde estn los archivos. Si bien mis archivos pueden estar en el directorio /firmas de mi sitio web, con poner /firmas no ser suficiente; tenemos que ingresar el path real de los archivos. Esto puede ser tedioso si no conocemos donde estn los archivos de nuestro hosting, por lo que yo recomiendo crear esta estructura de archivos:

    - firmas [dir]
    – imagenes [dir]
    – archivo PHP

    De esta manera nos ahorramos los problemas de tener que buscar el path real de los archivos

Espero que les sirva! Cualquier duda que tengan, pueden dejarme un comentario y tratar de resolverlo :)

Estoy escuchando:
Kylie Minogue - Almost A Lover

27 comentarios

  1. 1

    nu entendi XD


    Comentario hecho por @Tyra — 18/6/2004 a las 3:31 am

  2. 2

    Hola, encontre muy interesante el sistema para agregar una firma, en donde las imagenes van cambiando. segui los pasos al pie de la letra, pero no logre hacerlo funcionar. Cualquier ayuda sera bien recibida.


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:42 am

  3. 3

    Que error te est dando? As al aire, sin un poco ms de info, se complica un poco ayudar… :)


    Comentario hecho por @Andrea External link — 18/6/2004 a las 9:01 am

  4. 4

    haber…primero renombre las imagenes para dejarlas todas con el mismo formato.
    sig1.jpg …. sig5.jpg (5 imagenes)
    Luego cree un archivo .php utilizando el cdigo. Cambie el max de 11 a 5.
    En $filename lo deje tal cual como sale ahi (sig%s) y como no me resulto lo deje asi (sig).
    El archivo .php lo deje en una carpeta “firma”, y las imagenes las tire en una carpeta “imagenes”, y quedo asi

    imagenes/ [dir] // en el interior de esta carpeta estan la imagenes
    .php // el archivo .php se encuentra en la carpeta “firma”, anterior a la carpeta “imagenes”.

    Al final esto es lo que me muestra
    http://emulechile.wwwpuntocom.com/firma/firma.php
    Intente en otro sitio web… pero no paso nada.
    Mi codigo final fue el siguiente

    ***********************
    < ?php

    $max = 5; //numero maximo de imagenes
    $filename = "sig"; //nombre de nuestras imagenes

    $rndNum = rand(1, $max);
    $file = sprintf($fileName, $rndNum);

    header ( "Content-type: image/jpeg" );

    readfile ( "imagenes/" . $file . ".jpg");

    exit;
    ?>
    ***********************


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:00 pm

  5. 5

    El $filename si o si tiene que contener el %s… por lo que debera quedarte “sig%s”… sino no puede reemplazar el valor randmico en la variable.

    Tengo miedo que no te funcione por las cabeceras que est insertando tu host gratuito (los google ads)… porque necesita ser un archivo exclusivamente JPG… no puedes intentar en un sitio que no tenga publicidades?


    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:09 pm

  6. 6

    Si, tengo otro sitio sin publicidad. voy a intentar en el otro y te aviso. gracias por responder.


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:22 pm

  7. 7

    De nada! Sino cualquier cosa seguimos revisando qu es lo que pasa :)


    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:31 pm

  8. 8

    Volvi a seguir los pasos.. pero no tube mucha suerte.
    Ahora lo subi aca
    http://www.emulechile.cl/images/online/shinok/firma.php
    no me muestra error en esta oportunidad, pero tampoco hay imagen
    Este es el codigo que use.

    **********************
    < ?php

    $max = 5; //numero maximo de imagenes
    $filename = "sig%s"; //nombre de nuestras imagenes

    $rndNum = rand(1, $max);
    $file = sprintf($fileName, $rndNum);

    header ( "Content-type: image/jpeg" );

    readfile ( "imagenes/" . $file . ".jpg");

    exit;
    ?>
    ***********************
    Por favor fijate entre los espacio entre codigos. Talvez por ahi estoy cayendo. x ejemplo ( “imagenes/” . $file . “.jpg”)


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:32 pm

  9. 9

    ahora si.. no me muestra el codigo

    < ?php

    $max = 5; //numero maximo de imagenes
    $filename = "sig%s"; //nombre de nuestras imagenes

    $rndNum = rand(1, $max);
    $file = sprintf($fileName, $rndNum);

    header ( "Content-type: image/jpeg" );

    readfile ( "imagenes/" . $file . ".jpg");

    exit;
    ?>
    disculpa los otros mensajes.


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:33 pm

  10. 10

    disculpa.. tienes msn.. podriamos hablar por ahi. Contactame en
    adm_emulechile@hotmail.com

    gracias


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:34 pm

  11. 11

    No te preocupes, el cdigo yo lo veo bien en los mails de aviso.

    Intenta con esto, y dime que te imprime:

    <?php
    
    $max = 5; //numero maximo de imagenes
    $filename = "sig%s"; //nombre de nuestras imagenes 
    
    $rndNum = rand(1, $max);
    $file = sprintf($fileName, $rndNum);
    
    echo $file;
    
    exit;
    ?>
    

    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:36 pm

  12. 12

    ahi esta el error

    http://www.emulechile.cl/images/online/shinok/firma.php


    Parse error: parse error in /home/emulechile/images/online/shinok/firma.php on line 4


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:37 pm

  13. 13

    Si, ese error debe ser por la comilla rara que puse el wordpress… pero el error estaba en el cdigo que yo utilic, porque haba una variable que tena una N mayscula.

    Intenta con ste cdigo y me avisas :)

    <?php
    $max = 5; //numero maximo de imagenes
    $filename = "sig" //nombre de nuestras imagenes 
    
    $rndNum = rand(1, $max);
    $file = sprintf($filename, $rndNum);
    
    header ( "Content-type: image/jpeg" );
    
    readfile ( "imagenes/" . $file . ".jpg");
    
    exit;
    ?>
    

    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:41 pm

  14. 14

    Por cierto, cuidado con las comillas! El wordpress las est reemplazando, en el archivo PHP tienes que tener las comillas comunes, no las formateadas.


    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:44 pm

  15. 15

    Perdona por la molestia… pero me ha salido el mismo error. :(


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:45 pm

  16. 16

    voy a probar lo de las comillas


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:46 pm

  17. 17

    Puedes enviarme el archivo por mail? Lo reviso y te lo envio de nuevo… peorth @ gmail.com


    Comentario hecho por @Andrea External link — 18/6/2004 a las 3:47 pm

  18. 18

    Ya lo envie. Gracias


    Comentario hecho por @shinok External link — 18/6/2004 a las 3:52 pm

  19. 19

    Ahi lo recibi.
    Lo probe y me funciono de inmediato!!
    Muchas gracias Andrea. te pasaste
    http://www.emulechile.cl/images/online/shinok/firma.php

    Estube revisando tu pagina y esta muy interesante.
    Muchas gracias por toda la ayuda


    Comentario hecho por @shinok External link — 18/6/2004 a las 4:11 pm

  20. 20

    De nada! Me alegro mucho que te haya funcionado :aww:


    Comentario hecho por @Andrea External link — 18/6/2004 a las 4:16 pm

  21. 21

    como lo hago si tengo 4 firmas en jpg yo hice estoy no se si esta bien:

    < ?php

    $max = 4; //numero maximo de imagenes
    $filename = "sig"; //nombre de nuestras imagenes

    $rndNum = rand(1, $max);
    $file = sprintf($filename, $rndNum);

    header ( "Content-type: image/jpeg" );

    readfile ( "imagenes/" . $file . ".jpg");

    exit;
    ?>


    Comentario hecho por @Jeko — 27/10/2004 a las 8:19 pm

  22. 22

    me salio un codigo como este

    readfile(firmas/sig2.jpg): failed to open stream: No such file or directory in /home/webcindario/jeko/firmas/dinamicas.php


    Comentario hecho por @jeko — 28/10/2004 a las 11:15 am

  23. 23

    No muestra las imagenes…. una duda tengo:

    $filename = “sig%s”; //nombre de nuestras imagenes, en ese codigo… teniendo yo 3 imagenes… me deberia quedar asi??

    $filename = “la1%s”; “la2%s”; :la3%s”

    Por favor ayudenme como a shinok… me interesa bastante estas imagenes


    Comentario hecho por @manuel — 1/1/2005 a las 2:37 am

  24. 24

    Manuel: Te respond la duda por mail


    Comentario hecho por @Andrea External link — 1/1/2005 a las 4:52 pm

  25. 25

    Hulla!!, sabes?, no me funciona el codigo, tengo 1 carpeta ke se llama sigs, y dentro tengo 4 imagenes “sig1, sig2, sig3, sig4″ todas en jpg.

    lo ke yo no se si eske.. tengo ke tener 2 carpetas, y si me sirve un block de notas para hacer un “archivo php”.

    ayudame porfavor!… Gracias.. n_n [mi mail sirve para msn por siacaso]


    Comentario hecho por @GarneT — 2/4/2005 a las 7:31 pm

  26. 26

    hola!!
    tengo un par de dudas en
    readfile ( “imagenes/” . $file . “.jpeg”);

    envez de imagenes devo poner toda la direccion de mis firmas? por ejemplo
    http://usuarioslycos.com/chrnolegacy/imagenes/sig1.jpg

    y asi para las 4 imagenes? o “imagenes/” debo poner el nombre de la carpeta donde estan las imagenes?
    y el archivo .php debo subirlo directo al directorio de webhosting o debe ir dentro de alguna carpeta en especial?

    eso nomas es mi duda gracias =)


    Comentario hecho por @chrno suscripto a los comentarios — 11/4/2006 a las 1:03 pm

  27. 27

    wow, si que funciona, asi de simple esta, gracias Andrea :)


    Comentario hecho por @Guss_ — 9/8/2009 a las 12:40 pm

Trackback URL

Moderación activa:
Este post es considerado viejo, por lo tanto, los comentarios son moderados
Por favor, no lo envíes más de una vez

Previsualizar el comentario

Dejar un comentario

Los saltos de linea son automáticos, los emails no son mostrados en la página, los tags HTML permitidos son <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tip: Podés contestar un comentario existente haciendo clic sobre el nombre de la persona que lo escribió

144,231 SPAMS pasaron a mejor vida | Página cargada en 0.534 segundos