Fehler in cseo_java.php

  • Kann ja sein das das gewollt ist, aber ....

    Alle strpos($PHP_SELF, FILENAME_.....) in den if-Anweisungen funktionieren so nicht, denn in PHP5 wird auch ein return-Wert mit "0" als false zurückgegeben. Somit werden alle Anweisungen innerhalb der if-Schleifen nicht ausgeführt, obwohl die Bedingung eigendlich wahr ist.

    Die if-Anweisungen müßten also geändert werden (hier als Beispiel die erste if):

    Code
    if(strpos($PHP_SELF, FILENAME_CHECKOUT_PAYMENT) === 0)    echo $payment_modules->javascript_validation();

    Die nächste if-Schleife beginnt dann mit:

    Code
    if(strpos($PHP_SELF, FILENAME_CREATE_ACCOUNT) === 0 ||
    strpos($PHP_SELF, FILENAME_CREATE_GUEST_ACCOUNT) === 0 ||
    strpos($PHP_SELF, FILENAME_ACCOUNT_PASSWORD) === 0 ||
    .....
    usw.


    Wichtig hierbei der Vergleichsoperator (3 Zeichen).
    Siehe auch den Hinweis auf: http://de.php.net/manual/de/function.strpos.php

    Achso eins noch:
    Im Falle der Konto-Erstellung (create_account.php) stimmt dann auch die FORM_ACTION nicht.
    Hier muß der "onsubmit" heißen:
    onsubmit="return check_form(this);"
    Sonst gibt es einen javascript-Fehler (create_account nicht deklariert).

    2 Mal editiert, zuletzt von windmeup (16. August 2011 um 10:55)

  • hoi,


    Kann ja sein das das gewollt ist, aber .... //NEIN WAR ES NICHT

    Alle strpos($PHP_SELF, FILENAME_.....) in den if-Anweisungen funktionieren so nicht, denn in PHP5 /*da wirst du schon mit den früheren php-versionen ärger bekommen*/ wird auch ein return-Wert mit "0" als false zurückgegeben. Somit werden alle Anweisungen innerhalb der if-Schleifen nicht ausgeführt, obwohl die Bedingung eigendlich wahr ist.

    Die if-Anweisungen müßten also geändert werden (hier als Beispiel die erste if):

    Code
    if(strpos($PHP_SELF, FILENAME_CHECKOUT_PAYMENT) === 0)    echo $payment_modules->javascript_validation();

    Die nächste if-Schleife beginnt dann mit:

    Code
    if(strpos($PHP_SELF, FILENAME_CREATE_ACCOUNT) === 0 ||
    strpos($PHP_SELF, FILENAME_CREATE_GUEST_ACCOUNT) === 0 ||
    strpos($PHP_SELF, FILENAME_ACCOUNT_PASSWORD) === 0 ||
    .....
    usw.

    ...

    .

    richtig! für alle die es interessiert: der vergleich muss hier auf strikte (un)gleichheit erfolgen, da das "gute" php eben nicht typsicher ist, sondern in diesem falle diverse werte zurückliefern kann *würg*. als da wären: 0, -1 (bzw. einen ganzahligen wert), FALSE, bzw. TRUE oder einfach nur eine leere zeichenkette: ""...

    ^^ist behoben und kommt mit dem nächsten fp.

    greetz, me