Captcha im Form Event

Hallo zusammen,

habe folgendes Problem und komme seit Stunden nicht weiter. Vielleicht kann mir jemand helfen.

Fange mit ‘Enlight_Controller_Action_PostDispatchSecure_Frontend_Forms’ => ‘onSaveKataloganforderer’ ein Formular ab. Der Inhalt des Formulars wird in eine Tabelle geschrieben.

Problem ist jedoch das Captcha. Selbst wenn das Captcha falsch eingegeben wird, so wird mein weiterer Code ausgeführt. Ein zweite Captcha Validierung ist nicht möglich, da das benutzte Captcha schon aus der Session gelöscht wurde.

Kommt man aus den $args irgendwie an die Errors der Forms Klasse? Benutze ich das falsche Event?

 

public function onSaveKataloganforderer(\Enlight_Event_EventArgs $args) {
        $controller = $args->getSubject();
        $request = $controller->Request();
       
            if ($request->isPost()) {
            // bearbeite post Daten

Danke im Voraus!

Besten Gruß

Christian 

Hallo Christian.

Wie wäre es wenn du deinen Code dann erst nach dem Commit des Formulars einhackst.

Shopware_Controllers_Frontend_Forms::commitForm::after

da sind dann alle Prüfungen schon fertig und du kannst sicher sein das die Sache fertig validiert wurde.

Grüße Lukaschel

Hi Lukaschel,

genau soetwas habe ich gesucht und nicht gefunden.

Danke! Danke! Danke!

Kann man sich über die Syntax ::commitForm::after an jede beliebige Controller Funktion hängen, zb. getContent::before oder ist commitForm ein fester “Hook”?

Besten Gruß

Christian

Hallo Christian,

mit welcher Entwicklungsumgebung arbeitest du denn ? Ich würde dir da Phpstorm empfehlen da gibt es ein Symfony Plugin und ein Shopware Plugin da kriegst dann sogar Events und Hooks und noch vieles mehr vorgeschlagen :wink:

Grüße Lukaschel

Bin noch ganz oldschool auf Netbeans 8.2. Die Gewohnheit hält mich :slight_smile: