Ankündigung

Einklappen
Keine Ankündigung bisher.

Grafik erzeugen in include (Header schon gesendet)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Grafik erzeugen in include (Header schon gesendet)

    Hallo ich hab folgendes Problem:

    Ich möchte "on the fly" eine Grafik erzeugen in einer includierten Datei.

    Die Funktion zur Erzeugung der Grafik funktioniert einwandfrei.

    Innerhalb der includierten Datei gibt die Funktion allerdings nur noch die kryptischen Zeichen aus, weil der header("Content-Type: image/gif") scheinbar nicht mehr verarbeitet wird, da die Seite ja bereits ausgegeben wurde und ein zweiter Header wohl nicht mehr erlaubt ist, oder sehe ich das falsch?

    Kann man also in einer includierten Datei mitten im body der Seite
    (<body>...<?php include(Datei)...</body>) einen header("Content-Type: image/gif") aufrufen?

    Vieleicht kann man den Header ja initialisieren?

    Hab keinen Schimmer wie ich mitten drin, eine dynamische Grafik nun ausgeben kann ohne diese kryptischen Zeichen zu erhalten ...

    (Google und PHP Suche ausgereizt)

    Danke für konstruktive Vorschläge

  • #2
    Das Script nicht mit include einbinden, sondern so:

    <img src="script_mit_dem_die_grafik_erzeugt_wird.php">

    Kommentar


    • #3
      dafür sollte dann die erzeugende php ganz klar ihren header-typ angeben
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #4
        danke, aber so kann ich der function($wert) ja keinen wert übergeben, oder?

        ich probiers derweil mal aus ...

        Kommentar


        • #5
          1 HTTP Request = 1 Rsponse also auch nur 1 mal Resposne Header.

          Du sendets also entweder text/html ODER image/gif, beides auf ein mal gibt das HTTP Protokol nicht her.

          Daher musst du das Script für die Bildgenerierung mit einer seperaten Anfrage aufrufen, was bei einer Einbettung via <img src=""> geschieht. Hier erwartet der Browser als Rückgabe dann auch ein image/*.
          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

          Kommentar


          • #6
            Das kann man mit Parametern an der URL oder Session lösen

            Kommentar


            • #7
              wie ? Wert übergeben ? ... mit include auch nur begrenzt ..

              wenn du damit nicht glücklich wirst, lass deine zusammengeschraubte Grafik statt mit imagegif() mit imagegif("temp.gif"); erstellen, dann liegt die grafik da "herum" und kann anschließend, nachdem deine FUnktion erfolgreich beendet wurde mit "stinknormalem" <img scr="temp.gif" > ausgegeben werden
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              Kommentar


              • #8
                ok, also ich rufe per <img src="datei.php" /> die datei.php auf und dann gibt die funktion die grafik zurück, richtig?

                ich probiers grad mal aus ...

                Kommentar


                • #9
                  irgendwie funzt es noch nicht ...
                  also ich kann in einer includierten datei (<?php include($template.'php') ?>) ein template aufrufen in der ich dann per <img src="http://www.php.de/datei_wo_funktion_drin_ist.php" /> auf diese funktionsdatei verweise?

                  ich seh im quelltext nur den pfad zu der datei *grübel*

                  Kommentar


                  • #10
                    wieso auf einmal Templates .. eben wolltest du nur eine dynamisch erzeugte Grafik in eine einfache Seite einbauen ...


                    aber nochmal mein VOrschlag ...

                    die Funktion imagegif / imagejpeg / imagepng geben die erzeugte Grafik nicht nur direkt aus, sondern können die auch in eine Datei auf dem webserver speichern (vorausgesetzt, der darf dort schreiben) .. also such einen Ordner mit Schreibrecht für deinen www-User , und erzeuge deine Grafik dynamisch, dann statt header zu verbiegen, rufst du einfach imagegif( ...pfad+name) auf und das erzeugt an dieser Stelle eine echte Grafik-Datei, die du dann mit normalem <img src="pfad+name" einbinden kannst
                    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                    Kommentar


                    • #11
                      ah ok ... funktioniert so wie ihr gesagt habt per img tag ... hatte nur ein kleines htaccess problem

                      danke für die info ... man dass man hier so schnell hilfe bekommt find ich ja mal klasse

                      p.s. @ eagle wollte hier niemanden verwirren und hab die komplexen sachen weggelassen, die wichtigsten infos waren ja da, dass die funktion funktioniert trotzdem danke

                      Kommentar

                      Lädt...
                      X