Générateur qui ne fonctionne pas

Générateur qui ne fonctionne pas - PHP - Programmation

Marsh Posté le 08-02-2010 à 21:28:55    

Bonsoir,
 
J'ai récemment eu un soucis pour afficher des images en PHP mais Pascal le nain m'a été d'une grande aide. J'ai un autre script, qui est important, mais ce-dernier ne fonctionne pas et je ne comprends pas d'ou vient le problème. Le script en composé en plusieurs fichiers. Son but : une personne remplit un formulaire et selon le formulaire, une image s'affiche avec plusieurs autres images définies par des variables. Au départ, aucune image ne s'affichait. J'ai modifié le fichier .htaccess comme l'a conseillé le fichier readme.txt associé au script et l'image de fond s'affiche mais le reste : niente. C'est pourquoi j'en viens à vous en espérant trouver la solution à mon problème. Voici les sources des fichiers nécéssaires au script.
 
Le fichier statussig.php situé par exemple à la racine du site :
 

Code :
  1. <?php
  2. $url = "http://www.ici-il-y-a-ladresse-de-mon-site-comme-demande.com"; // Your website address
  3. $country = $_POST['country'];
  4. $habbo = $_POST['habboname'];
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  10. <title>Status Signature</title>
  11. <style type="text/css">
  12. <!--
  13. body,td,th {
  14. font-family: Verdana, Arial, Helvetica, sans-serif;
  15. font-size: 10px;
  16. color: #000000;
  17. }
  18. -->
  19. </style>
  20. </head>
  21. <body>
  22. <center>
  23.   <form method="POST">
  24.     <strong>Habbo Name</strong>
  25.   <input type="text" name="habboname" size="20"><br>
  26.   <br>
  27. <b>Country</b> <select size="1" name="country">
  28.   <option value="au">Australia</option>
  29.   <option value="ca">Canada</option>
  30.   <option value="sg">Singapore</option>
  31.   <option value="uk">United Kingdom</option>
  32.   <option value="us">USA</option>
  33.   </select><br><br>
  34.   <input type="submit" value="Submit" name="send"></p>
  35. </form>
  36. <br>
  37. <?
  38. if($habbo){
  39. echo "<img src=\"$url/sig/$country/$habbo\" alt=\"Broken?\"><br /><br />";
  40. ?>
  41. <b>Direct Link:</b><br><input type="text" name="web" size="20" onFocus="this.select()" value="<? echo "$url/sig/$country/$habbo"; ?>"><br /><br />
  42. <b>Forum Code:</b><br><input type="text" name="web" size="20" onFocus="this.select()" value="[img]<? echo "$url/sig/$country/$habbo"; ?>[/img]"><br /><br />
  43. <b>Forum Code:</b><br><input type="text" name="web" size="20" onFocus="this.select()" value="&lt;img src=&quot;<? echo "$url/sig/$country/$habbo"; ?>&quot; &gt;"><br /><br />
  44. <?
  45. }
  46. ?>
  47. <br><br>
  48. <i>Created by Hybride of Habbo Ring for you.<br>
  49. Feel free to remove this, it'll be our little secret ;-)</i><br><br>
  50. </center>
  51. </body>
  52. </html>
  53. <?
  54. ?>


 
 
La on crée un dossier sig ou il y a les fichiers suivants :
 
Le fichier habboClass.php :
 

Code :
  1. <?php
  2. class habboClass
  3. {
  4.     var $data;
  5.     var $habboname;
  6.     var $hotel;
  7.     var $private;
  8.     function habboClass($habboname, $hotel)
  9.     {
  10.         $this->habboname = $habboname;
  11.         $this->hotel = $hotel;
  12.         $this->data = file_get_contents("http://habbo." . $hotel . "/home/" . $habboname);
  13.     }
  14.     function online()
  15.     {
  16.         if (eregi("habbo_online_anim.gif", $this->data))
  17.         {
  18.             return true;
  19.         }
  20.         else
  21.         {
  22.             return false;
  23.         }
  24.     }
  25.     function banned()
  26.     {
  27.         if (eregi("This page is not available anymore", $this->data))
  28.         {
  29.             return true;
  30.         }
  31.         else
  32.         {
  33.             return false;
  34.         }
  35.     }
  36.     function actual()
  37.     {
  38.         if (eregi('<div id="page-headline-text">Habbo Homes</div>', $this->data))
  39.         {
  40.             return false;
  41.         }
  42.         else
  43.         {
  44.             return true;
  45.         }
  46.     }
  47.     function pageprivate()
  48.     {
  49.         if (eregi("marked this page as private.", $this->data))
  50.         {
  51.             return true;
  52.         }
  53.         else
  54.         {
  55.             return false;
  56.         }
  57.     }
  58.     function motto()
  59.     {
  60.         $motto = explode('<div class="profile-motto">', $this->data);
  61.         $motto = explode('</div>', $motto[1]);
  62.         $motto = trim($motto[0]);
  63.         $motto = str_replace('  <div class="clear">', '', $motto);
  64.         return $motto;
  65.     }
  66.     function badge()
  67.     {
  68.         if (eregi("c_images/album1584/", $this->data))
  69.         {
  70.             $badge = explode('http://images.habbohotel.' . $this->hotel .
  71.                 '/c_images/album1584/', $this->data);
  72.             $badge = explode('.gif', $badge[1]);
  73.             $badge = trim($badge[0]);
  74.             $badge = "http://images.habbohotel." . $this->hotel . "/c_images/album1584/" . $badge .
  75.                 ".gif";
  76.             return $badge;
  77.         }
  78.         else
  79.         {
  80.             return false;
  81.         }
  82.     }
  83.     function figure()
  84.     {
  85.         $figure = "http://www.habbo.".$this->hotel."/habbo-imaging/avatarimage?user=".$this->habboname."&action=&direction=2&head_direction=3&gesture=sml&size=l&img_format=gif";
  86.         return $figure;
  87.     }
  88.     function birthdate()
  89.     {
  90.         $birthdate = explode('<div class="birthday date">', $this->data);
  91.         $birthdate = explode('</div>', $birthdate[1]);
  92.         $birthdate = trim($birthdate[0]);
  93.         return $birthdate;
  94.     }
  95.     function normal()
  96.     {
  97.         if (!$this->banned() and !$this->pageprivate() and $this->actual())
  98.         {
  99.             return true;
  100.         }
  101.         else
  102.         {
  103.             return false;
  104.         }
  105.     }
  106.     function name()
  107.     {
  108.         $name = explode('<span class="name-text">', $this->data);
  109.         $name = explode('</span>', $name[1]);
  110.         $name = trim($name[0]);
  111.         return $name;
  112.     }
  113. function groupbadge()
  114.     {
  115.         if (eregi("/habbo-imaging/badge/", $this->data))
  116.         {
  117.             $badge = explode('/habbo-imaging/badge/', $this->data);
  118.             $badge = explode('.gif', $badge[1]);
  119.             $badge = trim($badge[0]);
  120.             $badge = "http://www.habbo." . $this->hotel . "/habbo-imaging/badge/" . $badge .
  121.                 ".gif";
  122.             return $badge;
  123.         }
  124.         else
  125.         {
  126.             return false;
  127.         }
  128.     } 
  129. }
  130. ?>


 
Différents fichiers selon l'hôtel. Je vous met par exemple habboProfile_au.php :
 

Code :
  1. <?php
  2. header("Content-type: image/png" );
  3. include ('habboClass.php');
  4. $habbo = $_GET['name'];
  5. //Data Retrieval
  6. $habboHome = new habboClass($habbo, 'com.au');
  7. if ($habboHome->banned())
  8. {
  9.     $im = imagecreatefrompng("banned.png" );
  10. }
  11. elseif ($habboHome->pageprivate())
  12. {
  13.     $im = imagecreatefrompng("private.png" );
  14. }
  15. elseif (!$habboHome->actual())
  16. {
  17.     $im = imagecreatefrompng("exist.png" );
  18. }
  19. else
  20. {
  21.     $im = imagecreatefrompng("profile.png" );
  22.     $white = imagecolorallocate($im, 255, 255, 255);
  23.     $fontbold = "volterb.ttf";
  24.     $font = "volter.ttf";
  25.     imagettftext($im, 7, 0, 103.5, 28.5, $white, $fontbold, "Name:" );
  26.     imagettftext($im, 7, 0, 149.5, 28.5, $white, $font, $habboHome->name());
  27.     $habboMotto = $habboHome->motto();
  28.     $habboMotto = eregi_replace("&gt;", ">", $habboMotto);
  29.     $habboMotto = eregi_replace("&lt;", "<", $habboMotto);
  30.     imagettftext($im, 7, 0, 103.5, 58.5, $white, $fontbold, "Motto:" );
  31.     imagettftext($im, 7, 0, 149.5, 58.5, $white, $font, $habboMotto);
  32.     if ($habboHome->online())
  33.     {
  34.         $statusText = "Online";
  35.     }
  36.     else
  37.     {
  38.         $statusText = "Offline";
  39.     }
  40.     imagettftext($im, 7, 0, 240, 89, $white, $fontbold, "Status:" );
  41.     imagettftext($im, 7, 0, 290, 89, $white, $font, $statusText);
  42.     $habboFigure = $habboHome->figure();
  43.     $habboFigure = imagecreatefromgif($habboFigure);
  44.     imagecopy($im, $habboFigure, 16, 18.5, 0, 0, 64, 106);
  45. if($habboHome->badge()){
  46.     $habboBadge = $habboHome->badge();
  47.     $habboBadge = imagecreatefromgif($habboBadge);
  48.     $halfBadgeX = imagesx($habboBadge) / 2;
  49.     $halfBadgeY = imagesy($habboBadge) / 2;
  50.     $centerX = 127.5 - $halfBadgeX;
  51.     $centerY = 110.5 - $halfBadgeY;
  52.     imagecopy($im, $habboBadge, $centerX, $centerY, 0, 0, imagesx($habboBadge),
  53.         imagesy($habboBadge));
  54. if($habboHome->groupbadge()){
  55.     $habboBadge = $habboHome->groupbadge();
  56.     $habboGBadge = imagecreatefromgif($habboBadge);
  57.     $halfGBadgeX = imagesx($habboGBadge) / 2;
  58.     $halfGBadgeY = imagesy($habboGBadge) / 2;
  59.     $centerX = 193.5 - $halfGBadgeX;
  60.     $centerY = 110.5 - $halfGBadgeY;
  61.     imagecopy($im, $habboGBadge, $centerX, $centerY, 0, 0, imagesx($habboGBadge),
  62.         imagesy($habboGBadge));
  63. }
  64. }
  65. }
  66. //Create Image
  67. imagepng($im);
  68. imagedestroy($im);
  69. ?>


 
Le reste, ce sont les images du style private, banned, etc.
 
J'ai, dans mon fichier .htaccess, inséré les lignes suivantes :
 
RewriteEngine on
RewriteRule ^sig/au/([^\/]+)/?$ /sig/habboProfile_au.php?name=$1 [L]
RewriteRule ^sig/ca/([^\/]+)/?$ /sig/habboProfile_ca.php?name=$1 [L]
RewriteRule ^sig/sg/([^\/]+)/?$ /sig/habboProfile_sg.php?name=$1 [L]
RewriteRule ^sig/uk/([^\/]+)/?$ /sig/habboProfile_uk.php?name=$1 [L]
RewriteRule ^sig/us/([^\/]+)/?$ /sig/habboProfile_us.php?name=$1 [L]
 
 
Voici le fichier readme.txt si vous voulez en savoir plus :
 

------------------------------------------------------------------
INSTALLATION AND USE
------------------------------------------------------------------
 
Open your root directory (usually called 'www' or
'public_html') and upload all the contents of 'upload'
into it as seen. You should have:
 
http://www.yourwebsite.com/statussig.php and
http://www.yourwebsite.com/sig/
 
To see the script in action, type:
http://YOURSITE/sig/habboProfile.php?name=HABBONAME
 
The image displayed can be used as an image on a website
or as a link back but in order to use it on a forum
you must use .htaccess (explain further down).
 
habboClass.php is the file that collects the information
habboProfile.php is the file that creates the image
 
------------------------------------------------------------------
.HTACCESS
------------------------------------------------------------------
 
To make this script more universal and available to
use on forums, you must have access to your .htaccess.
This can be found in your root directory (usually 'www'
or 'public_html'). Make sure that it is set to 644.
 
Now simply add the following:
 
RewriteEngine on
RewriteRule ^sig/au/([^\/]+)/?$ /sig/habboProfile_au.php?name=$1 [L]
RewriteRule ^sig/ca/([^\/]+)/?$ /sig/habboProfile_ca.php?name=$1 [L]
RewriteRule ^sig/sg/([^\/]+)/?$ /sig/habboProfile_sg.php?name=$1 [L]
RewriteRule ^sig/uk/([^\/]+)/?$ /sig/habboProfile_uk.php?name=$1 [L]
RewriteRule ^sig/us/([^\/]+)/?$ /sig/habboProfile_us.php?name=$1 [L]
 
The new URL to display the image will now be:
http://YOURSITE/sig/COUNTRY/HABBONAME
 
------------------------------------------------------------------
GENERATOR
------------------------------------------------------------------
 
To setup and use the generator, simply open the statussig.php file
in your favourite editor and change the URL to your own website
adress and your done.


 
 
Je sais que le problème parait compliqué du fait qu'il y a plusieurs fichiers mais j'aimerais vraiment pouvoir utiliser ce script. Je vous remercie d'avance pour votre aide précieuse.

Reply

Marsh Posté le 08-02-2010 à 21:28:55   

Reply

Marsh Posté le 09-02-2010 à 00:15:16    

Merci pour cette montagne de code.
A quoi sert-il ?

Reply

Marsh Posté le 09-02-2010 à 10:53:49    

Doit manquer des bouts de codes car le fichier statussig.php ne fait pas appel aux autres fichiers php. (pas d'include) :/
Quant à l'url rewriting, vu ton niveau, tu devrais pas commencer à faire du php avec ça d'activer, ça va t'embrouiller plus qu'autre chose et te générer des pbs supplémentaires.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-02-2010 à 13:25:39    

Citation :

Merci pour cette montagne de code.
A quoi sert-il ?


 
Ce script génère un ensemble d'image : un fond, dans un rectangle une image d'un habbo (personne du jeux) et dans un autre rectangle la mission qu'il a, ...
 

Citation :

Doit manquer des bouts de codes car le fichier statussig.php ne fait pas appel aux autres fichiers php. (pas d'include) :/
Quant à l'url rewriting, vu ton niveau, tu devrais pas commencer à faire du php avec ça d'activer, ça va t'embrouiller plus qu'autre chose et te générer des pbs supplémentaires.


 
Je me suis aussi posé la question des includes par rapport au statussig.php. Mais, l'image générée est un lien avec des variables. Selon le nom, le lien changera et depuis ce lien le fichier traitera les informations nécessaires. Je m'explique (du moins j'essaie :p) :
 
Le pseudo que j'entre est "hardware". Le lien sera donc : monsite.com/sig/habboProfile_au.php?name=hardware
et dans la page habboProfile_au.php, on récupère le pseudo et on complète les liens. Pour l'image du habbo on aura donc le lien avec comme nom "hardware" et ainsi de suite.
 
Je sais que c'est assez compliqué mais si vous voulez on peut en discuter par Messages Privés ou sur MSN par exemple. Bien entendu, si vous avez besoin de plus de données, demandez. Merci encore pour votre future aide.

Reply

Marsh Posté le 09-02-2010 à 19:05:21    

deja change tout les ereg  en preg

Reply

Marsh Posté le 09-02-2010 à 20:15:39    

stealth35 a écrit :

deja change tout les ereg  en preg


 
Comment cela ? Les eregi ? Et par preg ou preg_match ?
 
Sinon, pour tester le générateur en ligne pour vous faire une idée du concept, vous pouvez le trouver ici : http://testscript.0fees.net/statussig.php . Entrez par exemple "mdr" comme pseudo et laissez Australia. L'image de fond s'affiche bien mais pas le reste... Sachant que l'image de la personne peut etre cachée selon le choix sur le site du jeux, mais si c'est le cas alors l'image "private" devrait s'afficher.

Reply

Marsh Posté le 10-02-2010 à 13:50:05    

juste parce que les ereg son depreciate, donc autant mettre a jour, sinon ouai preg_match et au prealable fait un preg_quote
 
peu pas testé le pare feu du boulot bloque ton site : hacking

Reply

Marsh Posté le 10-02-2010 à 16:13:07    

stealth35 a écrit :

juste parce que les ereg son depreciate, donc autant mettre a jour, sinon ouai preg_match et au prealable fait un preg_quote
 
peu pas testé le pare feu du boulot bloque ton site : hacking


 
Il n'y a pas de ereg, seulement des eregi. C'est de cela dont tu veux parler ? Si oui, dois-je les remplacer dans tous les fichiers ou ils sont présents ? Pour finir, dois-je remplacer aussi les eregi_replace et si oui par quoi ?
 
Pour mon site, crois-moi j'ai hébergé que les fichiers de ce script  :)  Au pire essaie chez toi si ton boulot bloque l'accès. Merci encore pour l'aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed