Script im IE ok bei Firefox Buchstabensalat

Army Man

Mitglied
Hallo,

ich habe in den letzten Nächten ;) so "just for fun" (oder auch zur Übung) ein kleines Script programmiert.
Dieses wertet über den Link einige Variabeln aus und erstellt daraufhin ein png-Bild mit beliebiger Auflösung und Text. Eigentlich nichts großes, aber ich trotzdem ein wenig stolz darauf, es ganz alleine hinbekommen zu haben. :)

Mein Problem ist jetzt folgendes:
Mit dem IE läuft mein Script ohne Probleme, alles wunderbar, aber über Firefox und Opera bekomme ich einen riesen Buchstaben-Salat. Das ist natürlich sehr ärgerlich und ich habe absolut keine Ahnung, woran das liegen könnte.


Hier das Script (zum Test)
http://www.mhettig.de/US/test/test....utorials&name2=.de&spr1=cool forum since 19xx

der Code:
PHP:
 $size2 = $_GET["size2"];
 
$im = imagecreate($size1, $size2);
 
if ($bg=='black') {
imagecolorallocate($im, 0, 0, 0);
$orang = imagecolorallocate($im, 247, 94, 16);
$farbe1 = imagecolorallocate($im, 255, 255, 255); }
if ($bg=='white') {
imagecolorallocate($im, 255, 255, 255);
$orang = imagecolorallocate($im, 247, 94, 16);
$farbe1 = imagecolorallocate($im, 0, 0, 1); }
 
$name1 = $_GET["name1"];
$name2 = $_GET["name2"];
$spr1 = $_GET["spr1"];
$font = 'POR2F';
$font2 = 'arialf';
$fontsize = $size1 / 20;
$fontsize2 = $size1 / 60;
 
$breite1 = imagettfbbox ($fontsize, 0, $font, $name1);
$breite2 = imagettfbbox ($fontsize, 0, $font, $name2);
$breite3 = $breite1[0] + $breite1[2] + ( $size1 / 20 );
$breite4 = $breite2[0] + $breite2[2];
$breite5 = $breite3 + $breite4;
$breite6 = ($size1 - $breite5) / 2;
$breite7 = (($size1 - $breite5) / 2) + $breite3;
$hohe1 = ($size2 + ( $fontsize / 2 ) ) / 2;
$text1 = imagettftext($im, $fontsize, 0, $breite6, $hohe1, $farbe1, $font, $name1);
$text2 = imagettftext($im, $fontsize, 0, $breite7, $hohe1, $orang, $font, $name2);
 
$lineex1 = $breite6 - ( $size1 / 40 );
$liniex2 = $breite7 + $breite4 + ( $size1 / 40 );
$liniey1 = ($size2 - $fontsize ) / 2;
$liniey11 =( ($size2 - $fontsize ) / 2 ) +1;
$liniey2 = ($size2 + $fontsize ) / 2;
$liniey22 = ( ($size2 + $fontsize ) / 2 ) +1;
imageline ($im, $lineex1, $liniey1, $liniex2, $liniey1, $farbe1);
imageline ($im, $lineex1, $liniey11, $liniex2, $liniey11, $farbe1);
imageline ($im, $lineex1, $liniey2, $liniex2, $liniey2, $farbe1);
imageline ($im, $lineex1, $liniey22, $liniex2, $liniey22, $farbe1);
 
$breitePG1 = imagettfbbox ($fontsize2, 0, $font2, $spr1);
$breitePG2 = $liniex2 - $breitePG1[2];
$hohePG1 = ($liniey2 + ( $size1 / 50 ) );
$textPG = imagettftext($im, $fontsize2, 0, $breitePG2, $hohePG1, $farbe1, $font2, $spr1);
 
imagepng($im);
imagedestroy($im);
?>


Im Enteffekt soll die Übergabe der Variabeln über ein Formular erfolgen, aber wenn das so schon nirgens, außer im IE funktioniert, brauch ich in die Richtung ja noch keine Bemühungen anstellen.

Ich hoffe, ihr könnt mir helfen.
(und ich hoffe auch, dass es nicht so ein "billiger" Fehler ist :rolleyes: )


Gruß Army Man
 
Hallo,

du setzt leider keinen header() in deinem Script.
IE interessiert das meist nicht aber die andern Browser.

Ich hoffe es hilft weiter!
 
Ich hab jetzt nicht den genauen MimeType von PNG (gesprochen Peng! ;) ) im Kopf, aber ich glaub das hier sollte es tun:
PHP:
header("Content-Type: image/png");
 
Zurück