Zur Navigation

chaptcha mit php5

1 schurik_x (Gast)

Hallo Jörg, wie gehts die!

Bitte ich hab da so ne Frage:

hab mir auf meine Website www.2muchrooms.com in meine Formulare ein captcha tool eingebaut.
Local getestet lief ales super aber azf dem online server ging nichts.
Es kamm eine Fehlermeldung: "Parse error: Parse error: syntax error, unexpected....... .

Hab erfahren, dass ich auf php5 umsteigen muss damit chaptcha läuft.

das hab ich jetzt gemacht und mein server auf php5 umgestellt.
Jetzt kommt eine andere Fehlermeldung:

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /var/www/web20/html/anfrage/__captcha/pagebuilder.php on line 31


Irgendwie muß capcha doch laufen.
Was ist das

Danke


Schurik





14.09.2007 08:46

2 Jörg Kruse

Hallo Schurik,

die Fehlermeldung besagt, dass in der Datei pagebuilder.php in Zeile 31 ein Syntax-Fehler auftritt; die Auslöser solcher Fehler befinden sich aber oft oberhalb. Um genaueres darüber sagen zu können, müsstest du den Code dieser Datei posten (bis mindestens einschließlich Zeile 31)

14.09.2007 09:32

3 schurik (Gast)

Hallo Jörg, wunderschönen Guten Morgen

Beispiel-Fehlermeldung von oben war schon etwas weiter; wenn mann das Formular sendet.

Aber fangen wir mal ganz am anfrang an:

Es fängt schon mal hier an:

http://www.2muchrooms.com/dsp_hotel_homepage_show.php?hotel_ID=1120&detail_site=details_anfrage&backaction=detailshotel

Diese Meldung kommt im Formular:

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /var/www/web20/html/anfrage/__captcha/phrasefactory.php on line 18



Hier der ganze code aus der Datei phrasefactory.php:


<?php

    /**
     * this class allows to have multiple
     * "handshake backends" (i.e. session, file, db)
     * just call this class and you should receive a captchaPhrase
     */


  

   class PhraseFactory
    {




 static function get($reset=false, $phraseLength=3)
        {



            if ( file_exists("sessionphrase.php") )
            {
                include_once("sessionphrase.php");
                return SessionPhrase::get($reset, PhraseFactory::getPhrase($phraseLength));
            }

        
            echo "concrete PhraseFactory not found!";
            exit(1);
        }


  

        static function getPhrase($phraseLength)
        {
            static $captchaPhrase = null;

            if ( $captchaPhrase == null )
            {
                //avoid heavy readable and ambiguous chars
                $availableChars = "23456789";
                
                while ( $idx<$phraseLength )
                {
                    $currentChar = $availableChars[rand(0, strlen($availableChars)-1)];
                    if ( !strstr($captchaPhrase, $currentChar) )
                    {
                        $captchaPhrase .= $currentChar;
                        $idx++;
                    }
                }
            }
            
            return $captchaPhrase;
        }






     








    }





?>






Danke

Alexander - schurik_x

14.09.2007 11:30

4 Jörg Kruse

Bist du sicher, dass PHP 5 vollständig aktiviert ist?

Lass dir mal auf dem Server die PHP-Version ausgeben:

<?php

echo 'PHP-Version: ' . phpversion();

?>

14.09.2007 11:49 | geändert: 14.09.2007 11:50

5 schurik (Gast)

Oh du hast recht Jörg,

php 4 ist auf dem Server.
Aber ich habe es vom Provider machen lassen. hat sogar gekostet.
Die machten ein Upgrade auf ein Power Paket.
Muss ich da noch was umstellen im Confixx?
Keine Ahnung!

Danke

Alexander

14.09.2007 12:00

6 Jörg Kruse

Und wie wurde PHP5 installiert (CGI, Modul)?

Wenn PHP über CGI läuft, können auch mehrere PHP-Versionen eingebunden werden. Bei manchen Hostern muss man dann z.B. Scripte mit der Endung .php5 versehen, wenn dieses mit PHP5 geparst werden soll. Vielleicht findest du ja einen Hinweis in der FAQ deines Hosters - andernfalls würde ich den Support fragen

14.09.2007 12:44 | geändert: 14.09.2007 12:45

7 schurik (Gast)

Hallo Jörg,

vielen Dank noch mal für die Hilfe, wie schon ao oft hier im Forum.

Ich mußte also .php5 Endung nutzen oder eine .htaccess Datei erstellen mit dem Inhalt:

AddHandler x-httpd-php5 .php

Da habe ich die .htaccess Datei erstellt.
Es kommen keine Fehlermeldungen mehr.

Aber

Mein captcha Bild im Fromular wird nicht angzeigt.
Local funktioniert alles, das Bild wird angzeigt und aktualisiert.
Aber nicht online.

Hier noch mal so ein Formular:

http://www.2muchrooms.com/dsp_hotel_homepage_show.php?hotel_ID=1120&detail_site=details_anfrage&backaction=detailshotel

Was stimmt den da nicht?

Danke

Schurik

14.09.2007 17:48

8 Jörg Kruse

Das ist die Bildadresse:

http://www.2muchrooms.com/captchaimg.php?{hash}

Wenn du diese aufrufst, erhälst du ein paar Fehlermeldungen. Demnach wird die Datei "./__captcha/Captchaimpl.php" von captchaimg.php aus nicht gefunden. Stimmt der Pfad nicht?

14.09.2007 20:05 | geändert: 14.09.2007 20:06

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]