Anzeigefehler png

Sundermeier

Grünschnabel
Hi
Ich habe mir ein Code gebastelt der einen Fortschrittsbalken darstellt:
PHP:
  $s = "$a/$b";
  $width = ($a/$b) * 120;
  $balken = imagecreatetruecolor(120,20);
  $green = imagecolorallocate($balken, 2, 206, 22);
  imagefilledrectangle($balken, 0, 20, $width, 0, $green);
  $white = imagecolorallocate($balken, 255, 255, 255);
  imagestring($balken,2,40,3,$s,$white);
  imagepng($balken);
  imagedestroy($balken);

Ausgabe:
PHP:
  echo"
    <img src='inc/draw.php?a=60&b=120'>
  ";
Auf meinem lokalen Apache wird alles richtig angezeigt.
Auf dem Server fehlt das grüne Recheck, das den Fortschritt anzeigt
PHP:
imagefilledrectangle($balken, 0, 20, $width, 0, $green);
Muss ich an der php.ini irgendetwas ändern?Oder woran kann das liegen?
mfg Daniel
 
Wertest du $a unbd $b wirklich direkt aus? Du solltrst noch das folgende am Anfang rein tun um die Variablen $a und $b aus dem GET herauszulesen. Es ist gut möglich dass dein lokales php.ini den unsicheren direkten Variablenseten über get zulässt, auf den Servern ist das aber eigentlich (und hoffentlich) nie der Fall.
PHP:
$a = $_GET['a'];
$b = $_GET['b'];
 
das habe ich auch im Skript stehen habs nur nicht kopiert.
er zeigt mir die Werte auch an. Im Balken steht "60/120".
d.h. er bekommt die Variablen. Außerdem gehts ja auf meinem lokalen Server.
Also denke ich das es an irgendwelchen Einstellungen liegt.
 
Manchmal rechnet PHP nicht so wie gedacht wenn eine Klammer fehlt. Versuche es doch deshalb mal so:

PHP:
$width = (($a/$b) * 120);

Ist allerdings nur mal so eine Idee.
 
funktioniert auch nicht. Wie gesagt: es läuft auf meinem Apache richtig.
Das Bild wird auch angezeigt. Nur es fehlt das grüne Recheck auf dem Server. Das is was ich nicht verstehe.
 
Lies dir mal die Beschreibung bei php.net durch. Hier steht unter anderem folgendes:

Thanks terereese. it took me over two hours to figure that one out.
it worked locally: imagefilledrectangle(imagresource, int x1, int x2, int y1, inty2, color)

BUT remote on my provider only this worked: imagefilledrectangle(imagresource, int x1, int y2, int x1, inty1, color)

Any ideas why and where?

Es kann ja im Grunde nur an dieser Anweisung liegen und vielleicht hast du ja das gleiche Problem!?
 
ok Problem gelöst!
Tombe hatte recht.

PHP:
  $a = $_GET["a"];
  $b = $_GET["b"];
  $s = "$a/$b";
  $width = (($a/$b) * 120);
  $balken = imagecreatetruecolor(120,20);
  $green = imagecolorallocate($balken, 2, 206, 22);
  imagefilledrectangle($balken, 0, 0,$width, 20, $green);
  $white = imagecolorallocate($balken, 255, 255, 255);
  imagestring($balken,2,40,3,$s,$white);
  imagepng($balken);
  imagedestroy($balken);
das ist der Code der auf dem Server funktioniert.
Musste die Koordinaten ändern.

vielen Dank für die Hilfe!
 
Zuletzt bearbeitet:
Na ja, in dem Beitrag den ich oben zitiert habe wird ja auch geschrieben das es lokal anders aussehen musste als online.

Hast du das mal probiert?
 
Zurück