wuscheck: Grafik in Seiten includieren

Hi, schon wieder ich???

Ich habe vor eine Grafik in eine Seite zu packen. Die Grafik habe ich mit Programmen wie advGraph oder jpgraph erstellt. Wenn ich den kompletten Code an irgeneiner Stelle der Seite einbauen möchte, dann kommt die Fehlermeldung dass der header bereits gesendet wurde. Stelle ich den Code an den Anfang der Seite, dann erscheint zwar die Grafik, aber nicht der Rest der Seite. Danach habe ich den Grafik-Code in eine eigene Datei geschrieben und dann einen include auf diese Datei gemacht, auch das funktioniert nicht..., aber warum?

Hier ein kurzer Beispielcode:

<?php
include "advLine.inc"; //include line graph

//Create our labels and Data
$labels = array("Mon","Tue","Wed","Thu","Fri");
$data[0] = array("Output", 10, 15, 30, 28, 5);
$data[1] = array("Input", 7, 19, 36, 15, 8);

//Create a new graph 400x250 pixels
$ag = new advLine(400, 250);
$ag->loadData($data, $labels); //Load the Data
$ag->draw(); //Draw the picture
?>

  1. hallo

    <?php
    include "advLine.inc"; //include line graph

    wenn das problem auftritt beim include, poste den include doch bitte mal. =]

    //Create our labels and Data
    $labels = array("Mon","Tue","Wed","Thu","Fri");
    $data[0] = array("Output", 10, 15, 30, 28, 5);
    $data[1] = array("Input", 7, 19, 36, 15, 8);

    //Create a new graph 400x250 pixels
    $ag = new advLine(400, 250);
    $ag->loadData($data, $labels); //Load the Data
    $ag->draw(); //Draw the picture
    ?>

    sonst, was ich denke ist, das irgend eine header information wie header("mime-type:..");  in der include ist. das kannste nicht ausfuehren, nach der ersten ausgabe an den browser.

    hoffe das hilft

    ciao tilman

    1. hallo

      <?php
      include "advLine.inc"; //include line graph

      wenn das problem auftritt beim include, poste den include doch bitte mal. =]

      //Create our labels and Data
      $labels = array("Mon","Tue","Wed","Thu","Fri");
      $data[0] = array("Output", 10, 15, 30, 28, 5);
      $data[1] = array("Input", 7, 19, 36, 15, 8);

      //Create a new graph 400x250 pixels
      $ag = new advLine(400, 250);
      $ag->loadData($data, $labels); //Load the Data
      $ag->draw(); //Draw the picture
      ?>

      sonst, was ich denke ist, das irgend eine header information wie header("mime-type:..");  in der include ist. das kannste nicht ausfuehren, nach der ersten ausgabe an den browser.

      hoffe das hilft

      ciao tilman

      Hi Tilman,

      der Fehler der ausgegeben wird ist der folgende:

      Warning: Cannot add header information - headers already sent by (output started at ...

      Am Anfang meiner php-Datei habe ich bereits ein require stehen:
      <?php
      require "xyz.php";
      ?>
      <HTML>
      <HEAD>

      Fast am Ende kommt dann der code für den line-Chart:

      </table>
        <div align="center"><br>
       <?php
      include "advLine.inc"; //include line graph

      //Create our labels and Data
      $labels = array("Mon","Tue","Wed","Thu","Fri");
      $data[0] = array("Output", 10, 15, 30, 28, 5);
      $data[1] = array("Input", 7, 19, 36, 15, 8);

      //Create a new graph 400x250 pixels
      $ag = new advLine(400, 250);
      $ag->loadData($data, $labels); //Load the Data
      $ag->draw(); //Draw the picture
      ?>

      </div>

      Stelle ich den gesamten Grafik-Code an den Anfang der Datei, dann funktioniert es zwar mit der Darstellung des Charts, der code der restlichen Seite wird aber nicht mehr dargestellt...

      1. Am Anfang meiner php-Datei habe ich bereits ein require stehen:
        <?php
        require "xyz.php";
        ?>
        <HTML>
        <HEAD>

        Fast am Ende kommt dann der code für den line-Chart:

        </table>
          <div align="center"><br>
        <?php
        include "advLine.inc"; //include line graph

        ?>

        </div>

        k, ich glaube dein problem zu erkennen. Beim erstellen von Grafiken musst du einen header senden. Sprich in deinem fall ist das einfach an der falschen stelle im html dokument.

        packe doch alle die informationenen zum erstellen des bildes in eine eigene datei <? nur php, mit deiner ausgabe ?>. Dann kannst du die grafik ganz normal mit <img src="bild.php" > ausgeben.

        Zweite Variante, waere das Bild ganz am anfang deiner HTML datei zu erstellen, in in ner variable abzuspeichern und dann bei bedarf auszugeben.

        Hoffe ich konnte helfen.

        Tilman

  2. Moin!

    Ich habe vor eine Grafik in eine Seite zu packen. Die Grafik habe ich mit Programmen wie advGraph oder jpgraph erstellt. Wenn ich den kompletten Code an irgeneiner Stelle der Seite einbauen möchte, dann kommt die Fehlermeldung dass der header bereits gesendet wurde. Stelle ich den Code an den Anfang der Seite, dann erscheint zwar die Grafik, aber nicht der Rest der Seite. Danach habe ich den Grafik-Code in eine eigene Datei geschrieben und dann einen include auf diese Datei gemacht, auch das funktioniert nicht..., aber warum?

    Ganz klare Sache: Der Server schickt entweder HTML-Code an den Browser, oder eine Grafik. Für jeden Typus ist eine gesonderte Anfrage erforderlich, weshalb in der Regel zwei Skripte arbeiten - aber nicht ineinander verschachtelt.

    Zwei kurze Fragen zum Selberdraufkommen:

    1. Wenn du eine HTML-Seite vom Skript ausgeben läßt, was kommt beim Browser dann an? Nur Text, oder auch schon Bilder (z.B. im JPG/GIF-Format)?

    2. Da eine HTML-Seite nur aus Text besteht: Wie werden Bilder egal welcher Sorte in HTML eingebunden? Richtig, genau das gilt auch für Bilder, die von einem Skript erzeugt werden! <img src="dieurl.php?mit=parametern" width="breite" height="höhe" alt="Alternativer Text, sofern sinnvoll und gewünscht"> Du mußt nur noch dafür sorgen, daß dein PHP-Skript ein lupenreines Bild ausgibt, wenn man den Server danach fragt.

    - Sven Rautenberg

  3. Hi,

    Ich habe vor eine Grafik in eine Seite zu packen. Die Grafik habe ich mit Programmen wie advGraph oder jpgraph erstellt. Wenn ich den kompletten Code an irgeneiner Stelle der Seite einbauen möchte, dann kommt die Fehlermeldung dass der header bereits gesendet wurde. Stelle ich den Code an den Anfang der Seite, dann erscheint zwar die Grafik, aber nicht der Rest der Seite. Danach habe ich den Grafik-Code in eine eigene Datei geschrieben und dann einen include auf diese Datei gemacht, auch das funktioniert nicht..., aber warum?

    Weil Du die Grafik in ein img-Tag setzen musst!!!!
    Bsp.:
    <?php
    $bilder[0] = "pic00.jpg";   //array def.
    .
    .
    .

    //Bildgroesse ermitteln

    $size = GetImageSize ($bilder[$zufall]);
    ?>

    <img src="<?php echo $bilder[0]; ?>" border="0" alt="" <?php echo $size[3];?>>

    Viel Spass
    tommy

    1. Hi,

      Ich habe vor eine Grafik in eine Seite zu packen. Die Grafik habe ich mit Programmen wie advGraph oder jpgraph erstellt. Wenn ich den kompletten Code an irgeneiner Stelle der Seite einbauen möchte, dann kommt die Fehlermeldung dass der header bereits gesendet wurde. Stelle ich den Code an den Anfang der Seite, dann erscheint zwar die Grafik, aber nicht der Rest der Seite. Danach habe ich den Grafik-Code in eine eigene Datei geschrieben und dann einen include auf diese Datei gemacht, auch das funktioniert nicht..., aber warum?

      Weil Du die Grafik in ein img-Tag setzen musst!!!!
      Bsp.:
      <?php
      $bilder[0] = "pic00.jpg";   //array def.
      .
      .
      .

      //Bildgroesse ermitteln

      $size = GetImageSize ($bilder[0]); //natürlich dein image
      ?>

      <img src="<?php echo $bilder[0]; ?>" border="0" alt="" <?php echo $size[3];?>>

      //die drei steht für *.jpg -->gucke doch mal unter http://www.php.net

      Viel Spass
      tommy