Bilddateien werden nicht angezeigt

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

  • Bilddateien werden nicht angezeigt

    Hallo,

    ich will auf meiner Webseite ein Captcha-Bild verwenden. Das passende Skript hatte ich auf meinem Localhost mit XAMPP bereits getestet -funktioniert. Wenn ich dieses Skript auf dem Server (Win2008 R2 - Apache2.2 - PHP5.3.8) laufen lasse kommt die Meldung:
    Die Grafik "http://[IP-des-Servers]/captcha/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält
    Das Skript:
    PHP-Code:
    <?php
       session_start
    ();
       unset(
    $_SESSION['captcha_spam']);

       function 
    randomString($len) {
          
    $str "zufall"/*hier steht eine funktion, da sie funktioniert nehm ich sie raus...*/
       
    return($str);
       }

       
    $text randomString(5); 
       
    $_SESSION['captcha_spam'] = $text;

       
    header('Content-type: image/png');
       
    $img ImageCreateFromPNG('captcha.PNG'); //liegt im Captcha Ordner!
       
    $color ImageColorAllocate($img000); //Farbe
       
    $ttf $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"//Schriftart auf Server Installiert! und im Captcha ordner vorhanden.
       
    $ttfsize 25//Schriftgrösse
       
    $angle rand(0,5);
       
    $t_x rand(5,30);
       
    $t_y 35;
       
    imagettftext($img$ttfsize$angle$t_x$t_y$color$ttf$text);
       
    imagepng($img);
       
    imagedestroy($img);
    ?>
    Die Bild-Datei:
    Lesbar, Wirklich PNG, Testweise auch JPEG probiert, Mit Paint auf dem Server erzeugte PNG.

    GD-Setting:
    GD Support enabled
    GD Version bundled (2.0.34 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    FreeType Version 2.4.3
    GIF Read Support enabled
    GIF Create Support enabled
    JPEG Support enabled
    libJPEG Version 6b
    PNG Support enabled
    libPNG Version 1.2.46
    WBMP Support enabled
    XBM Support enabled
    Debug versuche:
    - imagettftext() auskommentiert = gleiche Meldung!
    - Alle Funktionsaufrufe mit @-Maskiert, damit sich kein Error-Report in dem Bildblob auskotzt.
    - Andere Bilddateitypen verwendet - Natürlich die Funktionen und den Header angepasst.
    - Header in 'text/plain' geändert und Errorreporting an. - Keine Fehlermeldung - nur des Bild als Plaintext
    - Für Captcha Ordner Vollzugriff für "Jeder" eingestellt
    - Pfadschreibweise für Font- und Bilddatei geändert.

    Ich weiß leider nicht mehr, was ich da noch machen kann. Vielleicht kann mir da jemand helfen! Danke!


    Mit freundlichen Grüßen

    Jazzman!

  • #2
    Hast du die Ausgabe des Webservers überhaupt schon mal in eine Datei gespeichert und dann dessen Inhalt analysiert?

    Kommentar


    • #3
      Hallo,

      Danke H3ll für den schnellen Tipp. Er geht anscheinend auch in die richtige Richtung. Habe die Ausgabe in eine (Binär-)Datei umgeleitet und siehe da. Klappt. Das Bild wird korrekt erzeugt.

      Der Webserver kann es aber leider immer noch nicht anzeigen...
      Ich kann das Bild zwar speichern und per Image-Tag einbinden, aber das ist nicht wirklich sinnvoll...

      Wenigstens liegt es nicht daran, das er etwas nicht laden kann oderso, nur bei der Ausgabe läuft irgendetwas schief.

      Ich brauche da unbedingt noch einen guten Tipp. Danke!

      Mit freundlichen Grüßen

      Jazzman

      Kommentar


      • #4
        So, habe das Skript mal etwas Reduziert.

        PHP-Code:
        <?php
        $im 
        imagecreatefrompng("BBild.png");
        header('Content-Type: image/png');

        imagepng($im);
        /* imagepng($im,"CBild.png");*/

        imagedestroy($im);
        ?>
        und schon wieder erhalte ich den Fehler
        Die Grafik ... kann nicht angezeigt werden, weil sie Fehler enthält
        Das Bild, das durch imagepng als CBild.png gespeichert wird, lässt sich auf dem Server problemlos öffnen.

        Errorreporting sagt auch nichts.

        Danke!

        Kommentar


        • #5
          Lass mal ?> komplett weg.

          Kommentar


          • #6
            So. Hat sich erledigt. Habe die Formatierung der Datei von UTF-8 auf CP1252 geändert. jetzt läufts.

            Trotzdem Danke nochmal!

            Kommentar


            • #7
              Du solltest die Datei als UTF-8 ohne BOM speichern.

              Byte Order Mark ? Wikipedia

              Kommentar

              Lädt...
              X