Ergebnis 1 bis 10 von 10

Thema: ValidateFormField-Hook - weitere Felder abfragen

  1. #1
    Contao-Nutzer Avatar von Daniel24
    Registriert seit
    24.06.2014.
    Beiträge
    60

    Standard ValidateFormField-Hook - weitere Felder abfragen

    Moin,

    ich habe mich für ein Upload-Formular mit dem valideForm-Hook auseinandergesetzt. Der User soll vor dem Abenden einen Code eingeben, um sich zu verifizieren. Das klappt soweit auch alles.
    Gerne würde ich aber den Inhalt (value) eines versteckten Feldes mit dem Hook abfragen. Ich habe schon
    PHP-Code:
    [$_Post['name'
    versucht. Aber das führt leider nicht zum Erfolg.
    Auch das ganze mittels
    PHP-Code:
    $checkValue = ($objWidget->name == 'code'); 
    abzufragen, führte nicht zum Ergebnis.

    Hat jemand eine Vorschlag bzw. die Lösung?

    Liebe Grüße
    Daniel

    Hier noch der komplette Code:
    PHP-Code:
      public function myValidateFormField(Widget $objWidget$intId$arrForm){
       
        if (
    $arrForm['formID'] == 'upload') {
            
            
    $checkValue '123'// code 
     
            // check field 
            
    if ($objWidget->name == 'verifycode')
            {
                
    // check the result with the verify-code
                
    if ($objWidget->value != $checkValue)
                {
                    
    // output error
                    
    $objWidget->addError('Der Code ist nicht korrekt!');
                }
            }
        } 
          return 
    $objWidget;     
      }


  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Zitat Zitat von Daniel24 Beitrag anzeigen
    Ich habe schon
    PHP-Code:
    [$_Post['name'
    versucht. Aber das führt leider nicht zum Erfolg.
    Das darfst du ohnehin niemals machen. GET und POST Variablen musst du immer über die \Contao\Input Klasse holen. In diesem Fall also
    PHP-Code:
    \Contao\Input::post('code'
    Oder über das Symfony Request Objekt.
    Geändert von Spooky (14.02.2019 um 09:48 Uhr)

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    @spooky: Du hast Dich auf $_Post['name'] bezogen, oder?
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Ja, falsch gequotet

  5. #5
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Was willst du genau machen?

    Während du das Feld "code" validierst, willst du den Wert aus dem Hidden Field "name" abfragen? Das sollte via "\Contao\Input:ost('name')" gehen (vorausgesetzt dein Formular versendet per POST).

  6. #6
    Contao-Nutzer Avatar von Daniel24
    Registriert seit
    24.06.2014.
    Beiträge
    60

    Standard

    Vielen Dank!!! Ich sag es ja immer wieder: Dieses Forum ist einfach spitze!
    Mit ein Grund, warum ich Contao empfehle - gerade eben im Gespräch mit einer alten Bekannten von mir.

    @spooky: Danke! Der Hinweis auf "\Contao\Input:: post" hat gleich zum Erfolg geführt.

    @cliffen: Mir kam gestern Abend der Gedanke, dass es "schöner" ist, wenn derjenigen, der sich um die Website kümmert, den Code selber im Backend eintragen kann (Hidden-Field im Formular), statt per FTP-Zugang in ungewohnten Ordnerverzeichnissen zu suchen. Und jetzt geht es auch - Dank eurer Hilfe!

    Schönen Tag noch!
    Daniel

  7. #7
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi Daniel,
    den Code in das Hidden Field einzutragen, um den dann via Post auszulesen und dann zu vergleichen ist vlt. nicht optimal, weil man im Quelltext den Code sehen kann.
    Wenn es sich nur um einen Code handelt ist die DCA Erweiterung des FormfieldText vlt. eine Idee. Dort ein neues Feld rein, was dann im validateFormField Hook über "$objWidget->" auslesbar ist.

  8. #8
    Contao-Nutzer Avatar von Daniel24
    Registriert seit
    24.06.2014.
    Beiträge
    60

    Standard

    Mmh, dass mit dem Quellcode habe ich überhaupt nicht bedacht, aber das stimmt. Das wäre ein Sicherheitsleck - jedenfalls theoretisch (und praktisch, wenn jemand in den Quelltext schaut).

    Was meinst Du mit "DCA Erweiterung des FormfieldText"? Eine zusätzliche Eintragemöglichkeit in einem Formular-Textfeld?
    Da hätten doch alle Elemente "Textfeld" diesen Zusatz, oder? Sorry, dass ich hier auf dem Schlauch stehe …

    Liebe Grüße
    Daniel

  9. #9
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja genau so meinte ich das.
    Ja, das hätten alle Textfelder ... kannst es auch in die Einstellungen des Formular packen ... oder in die Systemeinstellungen ... wie es beliebt.

  10. #10
    Contao-Nutzer Avatar von Daniel24
    Registriert seit
    24.06.2014.
    Beiträge
    60

    Standard

    Danke auf jeden Fall für die Anregung.

    Mal schauen, wie ich das umsetze.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •