Captcha-Experiment

  • Hallo,
    ich habe schon etwas mit Text in Grafik herum experimentiert, wollte mir ein eigenes Captchascript schreiben. Es hat auch bis vor ca. 1-2 Wochen funktioniert, jetzt nicht mehr. Ich bekomme immer die Fehlermeldung:
    Die Grafik "http://www.linkzurdomain/captcha.php?text=qkmws" kann nicht angezeigt werden, weil sie Fehler enthält.

    Nur welchen? Ich sehe keinen.
    Hier mal der code, welcher bisher lief:

    Die 'ff_o_g.gif' wie auch die 'fuosbd.ttf' liegen im richtigen Verzeichnis und sind definitiv vorhanden.

    Hat jemand eine Ahnung, woran das liegen könnte? Ich stehe vor einem Rätsel. Manchmal hat man ja Scheuklappen vor den Augen :rolleyes:

    Danke sehr

    Niemals provozieren lassen, jeder darf seine Meinung haben.

  • pack das header("Content-type: image/gif"); direkt vor imagegif($hBild);
    Dann steht da was anderes ;)
    Die Fehlermeldung ist ja im Bild Quellcode und wenn der Browser gesagt kricht das ist ein Bild versucht
    er das wieder zu geben. Ist im Code eine Fehlermeldung denkt der Browser, dass Bild ist kaputt.
    in vielen Toturials siehst du das so:

    PHP
    imagegif($hBild);
     imagedestroy($hBild);

    wobei imagegif veraltet ist, was auch ein Fehler sein könnte. siehe hier
    Benutz lieber imagepng!

  • pack das header("Content-type: image/gif"); direkt vor imagegif($hBild);
    Dann steht da was anderes ;)


    Nö, nich wirklich, es ändert sich gar nichts.

    Ob nun GIF oder PNG, okay, werde ich versuchen, aber es erklärt nicht, warum es von heut auf morgen plötzlich nicht mehr geht.

    Dennoch, danke sehr, werde weiter probieren müssen.

    MfG

    Niemals provozieren lassen, jeder darf seine Meinung haben.

  • Versuche das hier mal:


    Und rufe das Script direkt auf, also ohne <img src....

  • Fehlermeldung: Bild konnte nicht erzeugt werden.

    :eek:
    Ich verstehe es nicht und verzweifle langsam.

    MfG

    Niemals provozieren lassen, jeder darf seine Meinung haben.

  • Was passiert jetzt:

  • Nun, ich habe alles auf PNG umgebaut. Auf meinem lokalen Apache läuft es, auf dem Server nicht. Dort kommt wie eingangs erwähnt die Meldung:
    Die Grafik "http://www.linkzurdomain/captcha.php?text=qkmws" kann nicht angezeigt werden, weil sie Fehler enthält.

    Und diese Meldung ist eine Grafik!

    Habe mal die phpinfo.php laufen lassen, ich denke da ist was im argen.

    Server:

    Code
    GIF Read Support enabled 
    GIF Create Support enabled 
    JPG Support enabled 
    PNG Support enabled 
    WBMP Support enabled

    mein Apache:

    Code
    GD Support enabled  
    JPG Support enabled  
    PNG Support enabled  
    WBMP Support

    Jetzt bin ich völlig von der Rolle. Mein Apache unterstützt PNG, es läuft, der Server unterstützt PNG, dort läufts nicht. Ich kann mir jetzt nur noch vorstellen, dass es an der GD-Version liegt, auf dem Server ist eine neuere, welche evtl. anders arbeitet. Die müssen also etwas geändert haben, sodass mein Script nicht mehr läuft.

    Danke schonmal

    MfG

    Achso, sorry, habe deine Frage gar nicht beantwortet. Es wird keine Grafik angezeigt, nur der Alternativ- bzw. Titeltext der Grafik.

    Niemals provozieren lassen, jeder darf seine Meinung haben.

    Einmal editiert, zuletzt von Gebby (28. Dezember 2008 um 13:15)

  • Der Server hat Gif- und Png-Support, dort sollte es mit Gif oder Png funktionieren. Poste mal einen Link zum Server auf eine PHP-Info und auf das Script, sowie deinen aktuellen Quellcode.

  • Hast eine PN


    Ja, leider. Ich bin kein großer Freund von Privatunterricht. Außerdem verhinderst du so, dass dir auch andere helfen könnten und später andere mit dem gleichen Problem hier keine Lösung finden.

  • Warum willst du nicht in diesem Thread weitermachen? Muss doch nicht per PN sein!


    Ne, muss es nicht, war aber der Einfachheit halber eben meine Wahl. Schließt und schloss ja nicht aus, dass die Lösung dennoch hier gepostet wird.

    Übrigens verstehe ich genau diese Meldung nicht:

    Zitat

    Could not find/open font in /WWWROOT/61910/htdocs/bandit/captcha.php on line 16

    Wenn mich nicht alles täuscht, hatte ich schon erwähnt, dass du das Script direkt aufrufen sollst, um Fehler zu finden.

    Und genau das hatte ich auch gemacht. Die TTF-Datei ist definitiv und 100%-ig da.
    Nicht finden kann also nicht stimmen. Danach ist die logische Schlussfolgerung, php kann die nicht öffnen. Mein PHP auf meinem Apache macht das aber. Mal mit einer anderen TTF testen.

    MfG

    Niemals provozieren lassen, jeder darf seine Meinung haben.

  • http://bdt600.bd.funpic.de/captcha/captcha.php?text=hallo

    Script:

  • Jo, jetzt hab ichs.

    nicht "fuosdb.ttf", sondern "./fuosdb.ttf". Es ist mir aber unerklärlich. Die TTF lag und liegt im selben Ordner wie alle Scripte, daran hat sich definitiv nichts geändert. Kann es sein, dass man an der Serversoftware etwas eingestellt hat und "fuosdb.ttf" damit nicht mehr funktionierte? Denn bei mir funktioniert beides.

    Jetzt muss ich nur noch herausfinden, warum

    Zitat

    $strBeschriftung = isset($_GET['text']) ? $_GET['text'] : "Kein Text vorhanden";

    auf dem Server nicht geht.

    Danke für deine Geduld und Hilfe.

    MfG

    Niemals provozieren lassen, jeder darf seine Meinung haben.

  • Ja gerne. Ich dachte aber auch wenn ich das schreibe, ist es klar. Scheinbar nicht. Frage: Wozu ist das gut? --> $strBeschriftung = isset($_GET['text']) ? $_GET['text'] : "Kein Text vorhanden";

    Um den Inhalt der Variable (hier) text in eine andere PHP-Datei zu bekommen, damit sie dort weiterverarbeitet werden kann. Und genau diese Übergabe klappt nicht. Bei der Abfrage kommt IMMER als Ergebnis 'Kein Text vorhanden' raus, was natürlich nicht stimmt. In der Variable text ist etwas vorhanden, nur kann ich das in der darauffolgenden Datei nicht weiter verarbeiten.

    Das meine ich. Ich muss text mit '.php?text=...' übergeben, anders gehts nicht.

    MfG

    Niemals provozieren lassen, jeder darf seine Meinung haben.