truetopia: Problem mit einbinden einer image-Funktion (bzw eines scripts) in eine Seite

Hallo miteinander,

mein Problem ist das folgende:
Ich habe mir vor kurzer Zeit ein PHP-Script geschrieben, daß in einer Art Diagramm diversere Werte aufzeigt, sprich Werte aus einer SQL Table liest und diese grafisch darstellt und das ganze dann als Bild ausgibt.

Der Script selbst funktioniert wunderbar, allerdings ists mit der Funktionalität dahin wenn ich versuche ihn in eine Seite einzubinden.
Das ganze teil findet ihr hier:

http://truetopia.dunkle-engel.net/Enter_stats.php

das ist der pure script... sobald ich versuche irgendwie irgendwas zwischen einen body zu klemmen oder sonst irgendwie mit html in verbindung bringe ist der effekt einfach der, daß das bild nicht angezeigt wird.

Was ich will ist das bild auf der seite ausrichten zu können und der seite einen schwarzen hintergrund zu geben.

Ich danke schonmal im Vorraus
lieben gruß
truetopia

Ach PS:
Ich poste einfach mal den PHP-Script zur besseren übersicht:

<?PHP

include("dbconnect.php");

$balken_rot = imagecreatefromgif("red.gif");  //Image Rot
$balken_gelb = imagecreatefromgif("yellow.gif"); //Image Gelb
$balken_gruen = imagecreatefromgif("green.gif"); //Image Grün
$begin = imagecreatefromgif("begin.gif");  //Image Rot
$ende_rot = imagecreatefromgif("red_end.gif");  //Image Rot
$ende_gelb = imagecreatefromgif("yellow_end.gif"); //Image Gelb
$ende_gruen = imagecreatefromgif("green_end.gif"); //Image Grün
$background = imagecreatefromgif("Enter_stats.gif");

$image = ImageCreate(450,338);      //Image erstellen (Größe festlegen)

$farbe_body=imagecolorallocate($image,0,0,0);  //Background-Color
$farbe_font=imagecolorallocate($image,204,204,204); //Font-Color

imagefill($image,0,0,$farbe_body);     //Background-Color festlegen

ImageCopy($image,$background,0,0,0,0,450,338);

$constant_bar_width=2;
$constant_bar_height=30;
$bar_strength=20;
$bar_height=100;          //Breite des Balkens

// Datenbank Abfrage
  $abfrage = "SELECT * FROM test\_dia
     ORDER BY id ASC";

$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_object($ergebnis)){

$bar_width=100;
  $Zahl=$row->wert;

// Rot-Gelb-Grün Abfrage
if($Zahl>20){
  if($Zahl>80){
   $Rot=20;
   $Gelb=60;
   $Gruen=$Zahl-80;
   }
  else{
   $Rot=20;
   $Gelb=$Zahl-20;
   $Gruen=0;
   }
}
else{
$Rot=$Zahl;
$Gelb=0;
$Gruen=0;
}
// Ende

ImageCopy($image,$begin,$bar_width,$bar_height,0,0,10,$bar_strength);
$bar_width+=10;

// Zeichnen des Balkens
for($i=0; $i<=$Rot; $i++){
ImageCopy($image,$balken_rot,$bar_width,$bar_height,0,0,$constant_bar_width,$bar_strength);
$bar_width+=2;
}
  if($Gelb!=0){
  for($i=0; $i<=$Gelb; $i++){
  ImageCopy($image,$balken_gelb,$bar_width,$bar_height,0,0,$constant_bar_width,$bar_strength);
  $bar_width+=2;
  }
   if($Gruen!=0){
   for($i=0; $i<=$Gruen; $i++){
   ImageCopy($image,$balken_gruen,$bar_width,$bar_height,0,0,$constant_bar_width,$bar_strength);
   $bar_width+=2;
   }
  }
}

imagestring ($image, 2,30, $bar_height+4, "$row->name", $farbe_font); //Prozentanzeige
imagestring ($image, 2,350, $bar_height+4, "$Zahl%", $farbe_font); //Prozentanzeige
//Ende

if($Gelb==0){
  ImageCopy($image,$ende_rot,$bar_width,$bar_height,0,0,10,$bar_strength);
  }
  elseif($Gruen==0){
  ImageCopy($image,$ende_gelb,$bar_width,$bar_height,0,0,10,$bar_strength);
  }
  else{
  ImageCopy($image,$ende_gruen,$bar_width,$bar_height,0,0,10,$bar_strength);
  }

$bar_height+=$constant_bar_height;
}

// Ausgabe des Bildes
if (function_exists("imagegif")) {
    Header("Content-type: image/gif");
    imagegif($image);
  }
  elseif (function_exists("imagejpeg")) {
    Header("Content-type: image/jpeg");
    ImageJpeg($image, "", 100);
  }
  elseif (function_exists("imagepng")) {
    Header("Content-type: image/png");
    ImagePng($image);
  }
  else
    die("Keine Grafik-Unterstützung vorhanden");
//Ende
?>

  1. Hallo,

    dein Problem dürfte der Header sein, den Du am ende sendest. Bekanntlicherweise darf VOR einem header() Aufruf - NULL - Ausgabe erfolgen, nicht mal ein Leerzeichen oder eine Leerzeile. Da Du den Header im Body sendest, hat dieser natürlich keinen Effekt, nur den einen, einen Fehler.

    Schreib mal "error_reporting(E_ALL);" an den Anfang der Seite, dann siehst Du das Übel.

    Weiteres zur Funktion Header: php.net/header

  2. hi,

    Der Script selbst funktioniert wunderbar, allerdings ists mit der Funktionalität dahin wenn ich versuche ihn in eine Seite einzubinden.

    dann machst du es wohl nicht ganz richtig.

    sobald ich versuche irgendwie irgendwas zwischen einen body zu klemmen oder sonst irgendwie mit html in verbindung bringe ist der effekt einfach der, daß das bild nicht angezeigt wird.

    wie bindest du normalerweise bilder in ein HTML-dokument ein?

    genau, mit <img>.

    also mache das auch in diesem falle so.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }