Form Page - Validierung von Eingaben

  • Guten Tag,

    Ich arbeite momentan an einer Form Page. Die Übergabe von Werten funktioniert, ich möchte aber unter anderem doppelte und zu kurze/lange Einträge unterbinden.

    Ich habe mich an der RegisterForm.class.php und der register.tpl orientiert und dementsprechend unter anderem folgende Dateien angelegt/kopiert/angepasst:



    Allerdings funktioniert es nicht und ich kann sowohl einstellige Werte als auch Duplikate per Form in die Datenbank hinzufügen.
    Ich vermute er ruft validateValuename erst gar nicht auf, allerdings erschließt sich mir nicht wieso, da ich mich ja an obig genannten Dateien orientiert habe.

    Also habe ich wohl irgendwo etwas falsch gemacht und wollte nun hier fragen, ob mich jemand erleuchten kann, was genau ich vergessen habe bzw. falsch gemacht habe. :)

    Viele Grüße

    Trollgon

  • Ein paar Wochen später, hätte ich noch eine Verständnisfrage:

    Wo wird definiert, dass eine Funktion in einer Klasse, die von AbstractPage abhängig ist, aufgerufen wird?

    Die Funktion "validate()" wird es ja offensichtlich. Meine Funktion "validateValuename()" hingegen nicht. Warum?

    • Offizieller Beitrag

    Reihenfolge der Methoden-Aufrufe:

    \wcf\page\AbstractPage

    • readParameters()
    • show()
    • setActiveMenuItem()
    • checkModules()
    • checkPermissions()
    • readData()
    • assignVariables()

    \wcf\page\AbstractForm (Methoden die durch diese Klasse hinzukommen entsprechend markiert)

    • readParameters()
    • show()
    • setActiveMenuItem()
    • checkModules()
    • checkPermissions()
    • readData()
    • submit() <--
    • readFormParameters() <--
    • validate() <--
    • save() <--
    • assignVariables()


    In deinem Fall wird deine Methode nicht aufgerufen, weil du sie nicht selbst aufrufen lässt. Dazu musst du die validate()-Methode überschreiben, eben genau dies schrieb ich oben bereits!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!