Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 17 utilisateurs en ligne, consultez le détail
Auteur Message
Thomas
#0 Message posté le : 06-12-2006 à 19:19:42


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Bonsoir,

Je voudrais que lorsque je poste sur un forum, ma signature soit une citation aléatoire. Malheureuseusement, tous les forums n'offrent pas cette possibilité. Je pensais donc à une image, mais une image aléatoire, générée à chaque fois qu'elle est demandée, en fonction d'une liste de citations (fortune).

J'arrive, avec un script PHP, à obtenir une citation au hasard, mais sous forme de texte. Mon problème est donc de, à chaque nouvelle requête, de générer une image en fonction de ce texte.

Est-ce possible ?

Merci d'avance.
e-deby
#1 Message posté le : 07-12-2006 à 09:59:49


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 16-01-2003
Nombre de messages : 1230
avec gd par exemple

http://www.php.net/manual/fr/function.imagestring.php
Thomas
#2 Message posté le : 10-12-2006 à 09:42:13


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Merci pour ta réponse.
Je vais y regarder, mais à mon avis cela va fonctionner sans problème.
Par contre, je ne comprends pas comment je peux faire pour appeler le script de génération de l'image à chaque fois que l'image est demandée ?
jerep6
#3 Message posté le : 10-12-2006 à 12:03:55


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 14-08-2005
Nombre de messages : 488
<img alt='' src='thumb.php?name=$rel_path' />

J'appelle le script thump.php qui a pour but de creer une miniature et de l'afficher à l'écran. Je lui passe en paramètre le chemin de l'image.

Et voilà, toi tu peux lui passer le texte à afficher.
selimb
#4 Message posté le : 10-12-2006 à 17:33:19


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 18-04-2005
Nombre de messages : 1219
bonjour..//..bonsoir..
g un truc dans le genre (cf.ma signature):
http://s.bouras.free.fr/citaPop-Up/
(activer : java/scripts/popup)
ou:
http://s.bouras.free.fr/citaPop-Up/citation.php3
puis reactualise ou touche [F5] ou clic sur les liens:
amour | proverbes | einstein
.. si toutefois free daigne activer son serveur des sites perso..
.. fais moi avoir si ok.. je te le ferai envoyer en mp.
\bye.
selim,b.

--Message édité par selimb le 10-12-2006 à 18:15:39--


-------------------------------------
http://s.bouras.free.fr/citaPop-Up/
Thomas
#5 Message posté le : 13-12-2006 à 20:02:04


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Bon je sens que je suis sur la bonne voie mais je comprends rien au PHP...
Le script qui génère ma citation est celui-ci :
<?php



mt_srand ((double) microtime() * 1000000);

// $FortuneDir = "fortunes/";

$FileName = "citations";



// vᅵifie si les fichier existent

if (!file_exists("$FortuneDir$FileName"))

        die("$FileName n'existe pas!!");

else if (!file_exists("$FortuneDir$FileName.dat"))

        die("$FileName.dat n'existe pas!!");

else



{

        $fd=fopen("$FortuneDir$FileName.dat", "rb");

        $trash=fread($fd,4);



        // rᅵupᅵe le nb de citations...

        $str_numstr=hexdec(bin2hex(fread($fd,4)));



        // ...en prend une au hasard...

        $Number= mt_rand(0, $str_numstr-1);



        // ...recherhe la position...

        $trash=fread($fd, 12);

        $str_delim=fread($fd,4);



        for($i=0;$i<=$Number;$i++)

                $str_pointer=hexdec(bin2hex(fread($fd,4)));



        fclose($fd);

        $CptChar = 0;

        // recherche dans le fichier texte la citation correspondante

        $fd=fopen("$FortuneDir$FileName", "r");

        fseek($fd, $str_pointer);



        // ...puis l'affiche...

        $Char=fgets($fd, 1024);

        while (strcmp($Char,"%\n")!=0 && !feof($fd))

        {

              if (feof($fd))

                {

                        fseek($fd,0);

                }

                echo("$Char<br>");

                $Char=fgets($fd, 100);

        }



        fclose($fd);

}

?>


et moi, j'ai juste rajouté ça à la fin :

<?php

 // nouvelle image 100*30

 $im = imagecreate(100, 30);

 

 // fond blanc et texte bleu

 $bg = imagecolorallocate($im, 255, 255, 255);

 $textcolor = imagecolorallocate($im, 0, 0, 255);

 

 // ajout de la phrase en haut à gauche

 imagestring($im, 5, 0, 0, "$Char", $textcolor);

 

 // affichage de l'image

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

 imagepng($im);

 ?>



Je pensais que la citation générée par le premier script était stockée dans la variable $Char, non ?
Et là, j'obtiens une erreur...


--Message édité par Thomas le 13-12-2006 à 20:02:20--
Thomas
#6 Message posté le : 13-12-2006 à 20:30:16


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Hum, j'ai presque réussi : en faisant une fonction qui affiche l'image, avec pour paramètre la citation créée par le script précèdent.
Il ne me reste plus qu'à peaufiner (notament, gros problème : je n'ai pas de retour à la ligne...)

Je mettrai bien sur le code à disposition, ca peut toujours intéresser quelqu'un, même si il n'y a vraiment rien d'extraordinaire...

Merci e-deby, jerep6 et selimb pour votre aide précieuse !
Thomas
#7 Message posté le : 16-12-2006 à 16:12:22


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Hum, j'ai encore un petit problème : je peux, dans un fichier HTML, mettre l'astuce de jerep6 :
<img alt='' src='fortune.php' />
, ca marche, j'ai bien une image sur cette page HTML.

Mais je voudrais utiliser ceci sur un forum PhpBB : on ne peut pas inclure de HTML, mais c'est du BBcode :
[//img]http://www.lien.vers.limage[/img]

Les deux / devant la première balise img sont juste là pour éviter que le BBcode ne soit interprété par Trustforum   


Si je lui indique le lien vers la page HTML ca ne marche pas.

Est-il possible de générer un vrai fichier image ?

--Message édité par Thomas le 16-12-2006 à 16:15:35--
Azollyx
#8 Message posté le : 16-12-2006 à 16:43:01


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2089
Je ne comprend pas bien ce que tu veux dire. Est-ce que tu mets le liens vers une page HTML ou vers l'image ? Il faut le mettre vers l'image. Peux-tu nous donner des exemples réels (avec les vraix adresses et ce que tu mets réellement) ?

-------------------------------------
toto
Thomas
#9 Message posté le : 16-12-2006 à 18:23:13


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Justement, il n'y a pas d'image
Voici le script qui génère l'image : http://www.debay.org/test/fortune.php
Sa source :
<?php



(...) j'ai enlevé la partie qui prend une citation au hasard dans un fichier...

La citation est dans la variable $Char





function affichage ($Char) 

{ 

// nouvelle image 100*30

 $im = imagecreate(500, 500);

 

 // fond blanc et texte bleu

 $bg = imagecolorallocate($im, 255, 255, 255);

 $textcolor = imagecolorallocate($im, 0, 0, 255);

 

 // ajout de la phrase en haut &#65533; gauche

 imagestring($im, 5, 0, 0, "$Char", $textcolor);

 

 // affichage de l'image

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

 imagepng($im);

}



affichage ($Char);



?>



Et pour inclure ca dans une page HTML, je définit une image qui a pour source ce script : http://www.debay.org/test/image.htm

Le problème est que le forum en question (PhpBB) me demande une image, et ne veut rien d'autre. Je cherche à créer un fichier image à partir de ça.

Azollyx
#10 Message posté le : 16-12-2006 à 21:35:24


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2089
Et si tu fais comme ça :
?

-------------------------------------
toto
Thomas
#11 Message posté le : 17-12-2006 à 08:01:29


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Attention le BBcode que tu as posté est interprété par Trustforum !
Et ca ne marche pas dans mon cas car le forum détecte que ce n'est pas une image mais un script PHP... il n'en veut pas.
Azollyx
#12 Message posté le : 17-12-2006 à 11:28:35


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2089
Tu veux dire que le BBCode te refuse l'extension ?
Dans ce cas, peux-tu renommer le fichier en .php.png et réconfigurer ton serveur web pour qu'il interprête le php sur les fichiers en *.php* et non seulement *.php ?

-------------------------------------
toto
Thomas
#13 Message posté le : 17-12-2006 à 11:47:28


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-12-2005
Nombre de messages : 356
Oui, ça marche en utilisant ton astuce, c'est super !
Merci beaucoup !