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

  • MyUser123
    hat ein Thema erstellt Grafik und HTML gleichzeitg erstellen.

    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

  • Papst
    antwortet
    okay, ist falsche.. allerdings aus dem HTTP/1.1 Protocol:
    Note: Servers ought to be cautious about depending on URI lengths
    above 255 bytes, because some older client or proxy
    implementations might not properly support these lengths.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    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

    Einen Kommentar schreiben:


  • Papst
    antwortet
    maximale get länge ist 255 Zeichen.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Papst
    antwortet
    wozu soviele Daten ? oO

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

    Einen Kommentar schreiben:


  • MyUser123
    antwortet
    muss jetzt nachlesen wie viele überhaupt übertragen werden können...

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

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • MyUser123
    antwortet
    Danke papst, und mit POST geht das nicht?

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

    Einen Kommentar schreiben:


  • Papst
    antwortet
    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!

    Einen Kommentar schreiben:


  • MyUser123
    antwortet
    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

    Einen Kommentar schreiben:


  • Griffith
    antwortet
    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.

    Einen Kommentar schreiben:


  • MyUser123
    antwortet
    mh ok - danke - muss ich probieren

    Einen Kommentar schreiben:


  • Papst
    antwortet
    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.

    Einen Kommentar schreiben:


  • MyUser123
    antwortet
    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?

    Einen Kommentar schreiben:

Lädt...
X