2012-10-05 4 views
0

Eh bien, j'ai fait un script simple qui imprime des informations sur le serveur dans une image PNG, cela fonctionne mais il y a quelques problèmes. J'ai utilisé un script gratuit qui obtient des variables à partir d'un serveur source en utilisant php puis imprime la sortie, je l'ai édité pour qu'il imprime dans une image, mais en quelque sorte, il n'imprimera pas les joueurs et les valeurs cartographiques.PHP Imprimer Infos sur le serveur PNG

Ceci est le fichier config.php utilisé par le script.

<?php 

$servers = array (array ('name' => '[TF2] gameTek Idle Trade Server #1 [NO]', 
         'ip' => '84.234.160.79', 
         'port' => 27015), 
         array ('name' => '[TF2] gameTek Achevments Idle Trade Server #2 [NO]', 
         'ip' => '84.234.160.79', 
         'port' => 27017), 

         array ('name' => '[TF2] gameTek BOT Fun #3 [NO]', 
         'ip' => '84.234.160.79', 
         'port' => 27016), 
          array ('name' => '[TF2] gameTek Achevments Idle Trade Server #5 [DFW]', 
         'ip' => '50.56.179.18', 
         'port' => 27015) 
         ); 
/* 
$cachelifetime = 30; 
$cachefile = './cache/servers.html'; 
*/ 
$output = ' 
<p><a href="steam://connect/#ip#:#port#"> 
<img 
src="Generate.php?n=#name#&p=#players#/#maxplayers#&m=#map#" alt="" /></a></p> 
'; 

?> 

La sortie lors de l'impression est ce

http://teamgamers.net/GetInfoServer/Generate.php?n=[TF2]%20gameTek%20Idle%20Trade%20Server%20#1 [NO]&p=3/32&m=tek_idle_trade_v5 

Alors, comment puis-je faire en sorte qu'il fonctionne parfaitement, et non pas comme il est maintenant, qu'il imprime uniquement le nom du serveur et non la du repos? J'ai essayé de trouver un peu, mais sans chance.

Generate.php

<?php 
$Name = $_GET['n']; 
$Players = $_GET['p']; 
$Map = $_GET['m']; 
$Image = @ImageCreateFromPNG("./Server.png"); 
$Cord = imagecolorallocate($Image, 255, 255, 255); 
imagestring($Image,15,60,7,$Name,14); 
imagestring($Image,15,62,37,$Players,14); 
imagestring($Image,15,140,37,$Map,14); 
header('Content-type: image/png'); 
imagepng($Image); 
?> 
+1

Le hachage ('#') rompt votre script. Vous devez le remplacer par "% 23" – NullUserException

Répondre

0

Check out urlencode; Fondamentalement, tout ce que vous mettez dans l'url doit être passé dans urlencode pour s'assurer qu'il ne contient pas de méta-caractères.

$servers = array (array ('name' => urlencode('[TF2] gameTek Idle Trade Server #1 [NO]'), 
// and so on...