[Script PHP]Concurrencer Danasoft ^^

Démarré par SaniOKh, 22 Octobre 2005 à 16:25

0 Membres et 1 Invité sur ce sujet

22 Octobre 2005 à 16:25 Dernière édition: 22 Octobre 2005 à 16:57 par SaniOKh
Vous vous souvenez des signatures Danasoft? Oui, celles avec une pancarte tenue par un personnage, qui affiche des trucs du genre: "Votre adresse IP est:" .
Depuis que Cham s'est mis à faire ses propres sigs avec les dromadaires, je me suis dit que c'est dommage que ces pancartes ne changent pas de texte à tous les coups... jusqu'au jour où, en relisant ou bouquin de PHP, l'illumination m'est venue... (texte bidon, j'arrête là ^^)

Vous avez certainement remarqué que j'avais une sig perso qui affichait des textes au hasard. Voilà, ce que je veux faire est de vous présenter un script PHP à placer sur votre hébérgeur dans le même dosier qu'une image de votre choix.
Supposons que votre image se nomme test.gif. Voilà le script à utiliser (celui que j'utilise) :
<?
$im = ImageCreateFromGif("test.gif");
$k = mt_rand(0,99);
mt_srand(time() + (double)microtime()*$k);
$i = mt_rand(0,8);
if ($i == 0)
{
$color = imagecolorallocate($im,0,0,0);
$str = "Les jeux professionnels,";
imagestring($im,3,65,10,$str,$color);
$str = "c'est un business.";
imagestring($im,3,65,21,$str,$color);
$str = "Les jeux amateurs,";
imagestring($im,3,65,32,$str,$color);
$str = "c'est un art.";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 1)
{
$color = imagecolorallocate($im,0,0,0);
$str = "Je ne donne plus aucune astuce";
imagestring($im,3,65,10,$str,$color);
$str = "que ce soit par MP ou par MSN.";
imagestring($im,3,65,21,$str,$color);
$str = "Le forum est ici pour ce but.";
imagestring($im,3,65,32,$str,$color);
$str = "Servez vous-en ;).";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 2)
{
$color = imagecolorallocate($im,0,0,0);
$str = "A chaque fois";
imagestring($im,3,65,10,$str,$color);
$str = "que vous rechargez la page, ce";
imagestring($im,3,65,21,$str,$color);
$str = "message change. Eh oui, comme";
imagestring($im,3,65,32,$str,$color);
$str = "les pancartes de Danasoft ^^.";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 3)
{
$color = imagecolorallocate($im,0,0,0);
$str = "Un bug de cette signature:";
imagestring($im,3,65,10,$str,$color);
$str = 'voici ce que devient un "a"';
imagestring($im,3,65,21,$str,$color);
$str = "avec un accent grave: à.";
imagestring($im,3,65,32,$str,$color);
$str = "Un peu dommage...";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 4)
{
$color = imagecolorallocate($im,0,0,0);
$str = "Un bug de cette signature:";
imagestring($im,3,65,10,$str,$color);
$str = 'voici ce que devient un "e"';
imagestring($im,3,65,21,$str,$color);
$str = "avec un accent grave: è.";
imagestring($im,3,65,32,$str,$color);
$str = "Un peu dommage...";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 5)
{
$color = imagecolorallocate($im,0,0,0);
$str = "J'ai décidé de changer les";
imagestring($im,3,65,10,$str,$color);
$str = "sigs qu'on voit partout.";
imagestring($im,3,65,21,$str,$color);
$str = "Une bulle de BD, c'est un peu plus perso.";
imagestring($im,3,65,32,$str,$color);
$str = "Mais ça buggue aussi ^^";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 6)
{
$color = imagecolorallocate($im,0,0,0);
$str = "Ce forum est modéré.";
imagestring($im,3,65,10,$str,$color);
$str = "Pas content?";
imagestring($im,3,65,21,$str,$color);
$str = "C'est la même chose.";
imagestring($im,3,65,32,$str,$color);
$str = "(rire sadique)";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 7)
{
$color = imagecolorallocate($im,0,0,0);
$str = "eske tu pij c ke jécri";
imagestring($im,3,65,10,$str,$color);
$str = "G parl pa le langaj SMS";
imagestring($im,3,65,21,$str,$color);
$str = "J'ECRIS BIEN, MOI!";
imagestring($im,3,65,32,$str,$color);
$str = "Faites-en autant!";
imagestring($im,3,65,43,$str,$color);
}
if ($i == 8)
{
$ip = getenv("REMOTE_ADDR");
$color = imagecolorallocate($im,0,0,0);
$str = "Laisse-moi deviner ton IP...";
imagestring($im,3,65,10,$str,$color);
$str = "$ip";
imagestring($im,3,65,21,$str,$color);
$str = "C'est ça?";
imagestring($im,3,65,32,$str,$color);
$str = "J'suis fort, hein?";
imagestring($im,3,65,43,$str,$color);
}
Header("Content-type: image/gif");
ImageGif($im);
ImageDestroy;
?>


Voici quelques points à éclairicir:
*comme vous avez compris, les messages sont placés sur l'image en fonction de la valeur de la variable aléatoire. Les messages correspondent dans ce cas aux variables de 0 à 8. Ce qui ne vous empêche bien sûr pas de changer
$i = mt_rand(0,8);
en$i = mt_rand(0,9);et rajouter un autre message... vous pouvez en mettre autant que vous voulez ^^
*$color = imagecolorallocate($im,0,0,0); change la couleur du message. En faisant varier les trois derniers chiffres entre 0 et 255, vous changerez la couleur du texte.
*$str = 'quelquechose'; est le texte d'une ligne qui sera affiché dans la signature. Attention, quand le texte est compris entre deux apostrophes, comme dans ce cas, pour inclure une apostrophe dans le texte, il va falloir la préceder de "\". Comme ça: " \' ".
*imagestring($im,3,65,10,$str,$color); afiche votre texte. $im est l'image (à ne pas changer) , 3 est la taille de la police, 65 et 10 correspondent à l'endroit où commence le texte. $str est le texte afiché et $color est sa couleur.
*Avant chaque "imagestring" vous pouvez changer de couleur. Ca vous permettra de faire des lignes de couleurs différentes ^^ (un peu inutile, mais sympa quand même).
*$ip = getenv("REMOTE_ADDR"); , puis $str ="$ip"; correspond au prélevement de l'IP de celui qui voit cette pancarte et son affichage. Tout comme avec les signatures de Danasoft, l'IP n'est conservée nulle part (et ce serait vraimnt malhonnête de profiter de cette sig pour ce faire).

BUG: les lettres acentuées partent en vrille, certaines sont remplacées par d'autres. Si vous trouvez un moyen de pallier cet inconvénient, ou les correspondances des lettres accentuées utilisée dans le français, je prends ^^

Et si vous savez aussi comment changer de police et permettre d'identifier le système d'exploitation et le navigateur web, je vous serai très réconnaissant ^^

Dernière chose, pour permettre l'utilisation de ce script sur les forums. Les forums (celui-ci inclus) n'acceptent pas les images qui se terminent par .php ou autre extension qui ne fasse pas allusion à l'image. Vous pouvez pallier ce problème en plaçant après l'adresse de votre script une variable inutile dont la valeur se terminera par .gif. Come, par exemple, [adresse]/script.php?image=image.gif . Là, ça va marcher ^^
A vos éditeurs de graphismes ^^

Oui mais pour en mettre sur le forum le code sera tapé sur une page PHP donc sur le forum on ne verra qu'une image pas le texe :unsure:

 :huh: Je ne comprends pas tout à fait ^^'
Alors, voilà ce qui se passe quand on tape:
[img]http://saniokh.free.fr/test.php[/img]

Seulement, le truc c'est que dans les signatures, ça ne passe pas, SMF enlève ces liens. Alors voilà la parade: on tape une variable inutile à la fin:
[img]http://saniokh.free.fr/test.php?image=test.gif[/img]

Ca donne la même chose, mais ça marche pour les signatures.
Où est le problème? ;)

Apprends tes caractères spéciaux et ta signature n'aura plus de bug.

Sinon, pour ce qui est de la découverte du rand, le bon vieux cours sur sdz permet à tout le monde d'en faire autant, rien de révolutionnaire :)

Citation de: mota le 22 Octobre 2005 à 22:04
Apprends tes caractères spéciaux et ta signature n'aura plus de bug.

Sinon, pour ce qui est de la découverte du rand, le bon vieux cours sur sdz permet à tout le monde d'en faire autant, rien de révolutionnaire :)
Je n'ai jamais prétendu que c'était quelquechose de révolutionnaire ^^' Surtout que ce n'est pas le RAND que je ne connaisais pas, mais toutes ces fonctions qui touchent au placement du texte sur la signature.
Si tu es assez expérimenté au PHP, tu pourrais donner des tuyaux ^^ Je cherche toujours les variables pour déterminer le navigateur et le système d'exploitation.

Citation de: SaniOKh le 24 Octobre 2005 à 09:45
Je cherche toujours les variables pour déterminer le navigateur et le système d'exploitation.
C'est écrit quelque part dans l'entête de la requète HTML, cherche de ce coté la.
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien

01 Novembre 2005 à 01:00 #6 Dernière édition: 01 Novembre 2005 à 01:05 par mota
Citation de: SaniOKh le 24 Octobre 2005 à 09:45
Citation de: mota le 22 Octobre 2005 à 22:04
Apprends tes caractères spéciaux et ta signature n'aura plus de bug.

Sinon, pour ce qui est de la découverte du rand, le bon vieux cours sur sdz permet à tout le monde d'en faire autant, rien de révolutionnaire :)
Je n'ai jamais prétendu que c'était quelquechose de révolutionnaire ^^' Surtout que ce n'est pas le RAND que je ne connaisais pas, mais toutes ces fonctions qui touchent au placement du texte sur la signature.
Si tu es assez expérimenté au PHP, tu pourrais donner des tuyaux ^^ Je cherche toujours les variables pour déterminer le navigateur et le système d'exploitation.

http://fr.php.net/reserved.variables

Citation'HTTP_USER_AGENT'

Contenu de l'en-tête User_Agent: de la requête courante, si elle existe. C'est une chaîne qui décrit le client HTML utilisé pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre autres choses, vous pouvez utiliser cette valeur avec get_browser() pour optimiser votre page en fonction des capacités du client.

Suffit de chercher.