Ankündigung

Einklappen
Keine Ankündigung bisher.

Grafik und HTML gleichzeitg erstellen

Einklappen

Neue Werbung 2019

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

  • Grafik und HTML gleichzeitg erstellen

    Hallo Community,

    mit zum Beispiel
    PHP-Code:
    header("Content-Type: image/png"); 
    und imagettftext erzeuge ich eine Grafik .. dies funktioniert auch.

    Jedoch wird nur die Grafik angezeigt; in Verbindung mit einer echo-Ausgabe klappts nicht mehr. Welchen korrekten Header bräuchte ich für HTML+Image, und kann ich dann HTML+dynamisch erzeugte Image gleichzeitig anzeigen (ohne vorher die erzeugte Datei am Server abzuspeichern)??

    DANKE

    MfG


  • #2
    garnicht!

    Du müsstest das Script splitten, eins welches dir die Bilder generiert und eins, welches dir die HTML Seite generiert.
    Eine Ausgabe von beidem in einem Aufruf funktioniert nicht!

    Kommentar


    • #3
      danke für deine antwort,

      mit generieren meinst du bild erzeugen + am server abspeichern, oder?
      oder kann ich die bilder (vom script "bild-erzeugt") dann ins andere php-script (script "html-erzeugt) übergeben und das ohne zwischenabspeicherung der bilder?

      Kommentar


      • #4
        ja und nein
        das kannst du halten, wie du willst.

        Du kannst doch einfach eine zweite PHP Datei hinterlegen, welche das Bild erstellt und ausgibt ohne es zu speichern.

        Kommentar


        • #5
          mh ok - danke - muss ich probieren

          Kommentar


          • #6
            Entweder du speicherst das Bild vorher auf Platte ab:

            Browser ruft index.php auf.
            * PHP-Script speichert image-dgh4asu2.png mit zufälligem Token
            * PHP-Script generiert HTML-Ausgabe
            Browser ruft image-dgh4asu2.png auf

            Oder du übergibst alle notwendigen Parameter zu Generierung des Bildes an eine image.php via GET-Parameter.

            z.B. image.php?text=Der+Ausgabetext
            image_avatar.php?userid=162

            Wenn du Sessions benutzt kannst du diese Sachen auch in der Session speichern.

            Und es gibt noch weitere Möglichkeiten ... musst halt das wählen was in dem Fall am sinnvollsten ist.

            Kommentar


            • #7
              also ich habe es folgendermassen dzt. so (was leider noch nicht funktioniert):

              createHTML-Script:
              echo <html>
              ...
              ruft createImage mit Parameter auf (createImage (para1, para2, ...) );
              Ausgabe:
              1) falls header('Content-type: image/png'); => Fehler
              2) auch ohne header('Content-type: image/png'); kommt ein auch Fehler



              createImage
              erzeugt das Bild
              unter anderem mit
              imagefilledrectangle
              imagettftext
              //header('Content-type: image/png');
              imagepng($image);
              //imagedestroy($image); <- glaub brauch ich doch nicht
              return $image; <- gibt Bild an CreateHTML zurück



              Habe es jetzt mit GET probiert und geschafft:
              '<img src="createImage.php?text=demo">';

              Aber mit POST gehts seltsamerweise nicht wenn ichs gleich so einbaue (und natürlich auf POSt umstelle)
              '<img src="createImage.php">';


              mit GET

              Kommentar


              • #8
                lies nochmal die Posts.

                Du brauchst zwei seperate Dateien bzw Scriptaufrufe. Der IMG Scriptaufruf muss via HTML erfolgen:
                Code:
                <img src="imgScript.php?foo=bar" />
                Du kannst ein Bild NUR über den <img /> Tag einbinden!
                Dort MUSS eine URL stehen, KEINE Bild-Binärdaten, da kannst du keinen Header senden für, es MUSS via HTML eingebunden werden!

                Edit:

                Du kannst auch keine Post Daten an einen <img />-Tag übergeben! Hier kannst du variablen nur per GET übergeben.
                Alternativ kannst du die in der/einer Session speichern oder per Cookie speichern!

                Kommentar


                • #9
                  Danke papst, und mit POST geht das nicht?

                  Nachteil ist ja bei GET, dass die maximale Länge von URLs beschränkt ist.

                  Kommentar


                  • #10
                    Zitat von MyUser123 Beitrag anzeigen
                    Danke papst, und mit POST geht das nicht?
                    Nein, natürlich nicht.

                    Nachteil ist ja bei GET, dass die maximale Länge von URLs beschränkt ist.
                    Wie viel Daten willst du denn übergeben?

                    Wenn es wirklich viele sind, nutze Sessions.

                    Kommentar


                    • #11
                      muss jetzt nachlesen wie viele überhaupt übertragen werden können...

                      aber z. B. 10 KB müsste ich ja direkt in der URL übertragen

                      Kommentar


                      • #12
                        wozu soviele Daten ? oO

                        kommt dein Bild-Script nicht selber an die Daten heran ??
                        Ansonsten hilft nur zwischenspeichern oder in die Session packen.

                        Kommentar


                        • #13
                          wenn die variable1 einen text von 3 kb hat - dann kann ich diese ja nicht mehr mit GET übergeben, oder?!

                          Kommentar


                          • #14
                            maximale get länge ist 255 Zeichen.

                            Kommentar


                            • #15
                              Zitat von Papst Beitrag anzeigen
                              maximale get länge ist 255 Zeichen.
                              Nein, das ist abhängig von Browser und Server.

                              z.B.:
                              Maximale URL-Länge in Internet Explorer ist 2.083 Zeichen
                              WWW FAQs: What is the maximum length of a URL?

                              HTTP macht auch keine Einschränkung diesbezüglich
                              HTTP/1.1: Protocol Parameters
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X