Bild an Output schicken (CGI)



  • Hi alle zam.

    Ich habe ein Trackingprogramm in C++ gemacht und dieser soll die Fähigkeit haben einen Art Zählpixel auszugeben. So könnte ich einfach die URL zu dem cgi-Programm in ein IMG-Tag hinzufügen und beim Aufrufen der Seite wird auch das Programm aufgerufen.

    Dafür habe ich jetzt in einen String den Hexcode eines 1x1 GIF-Bild eingefügt. Dafür habe ich das Bild in einem Hexeditor (khexedit) geöffnet und die Hexwerte rauskopiert.
    (HexString: "47494638396101000100800000ffffffffffff21f90401080001002c00000000010001000002024c01003b")

    Im Programm wird der hexstring in ein normalen String konvertiert und sollte inklusive des HTTP-Headers "Content-Type: image/gif\n\n" ausgegeben.
    Jedoch wenn ich die Datei anwähle über den Browser zeigt mich dieser nur die Adresse noch einmal an. In der Taskleiste vom Firefox wird aber angezeigt, dass ein Bild aufgerufen wurde ( "blablabla.cgi (GIF-Grafik)")

    Nun wollte ich mal fragen wie ich das jetzt am besten hinbekomme, dass das Bild angezeigt wird.

    Danke im voraus für jede Hilfe

    HOHOHO :xmas1:
    LM



  • Hallo,

    Vieleicht schickst Du nicht das komplette Bild mit. Da sind schließlich ein paar 0 Bytes dabei und wenn Du das mit einem C++ String verarbeitest, fehlt halt ein Teil.

    mfg Martin



  • TATSACHE!

    ... Ich hab vergessen noch das EOF-Byte zu schicken 😃
    Jetzt wird nichts angezeigt und wenn ich die Datei runterlad und mit Gimp öffne bekomme ich keinen Fehler mehr ^^

    String pixel="47494638396101000100800000ffffffffffff21f90401080001002c00000000010001000002024c01003b";
    	pixel = hexToString(pixel);
    	std::cout << "Content-Type: image/gif\n\n";
    	std::cout << pixel <<EOF;
    

    (hexToString Ist die funktion, die von HexString in einString umwandelt)

    Gah und ich hab ewig gegrübelt woran das liegt 😡

    Danke noch mal für die Erleuchtung mit dem EOF (hätte gedacht es würde gleich mitgeschickt ... bis ich mal auf das letzte HEX-Byte geschaut habe ...

    Danke und ne frohe Zeit 🙂


Anmelden zum Antworten