Contao-Summit 2026

Ankündigung

Collapse
No announcement yet.

CONTAO 5.3.44: Eigenes PHP Formular: Ungültiges Anfrage-Token

Collapse
X
 
  • Filter
  • Zeit
  • Show
Clear All
new posts

    5.3.x CONTAO 5.3.44: Eigenes PHP Formular: Ungültiges Anfrage-Token

    Hallo,



    habe ein eigenes PHP Formular eigebunden und erhalte eine Fehlermeldung: Was ist das Problem? Das Request-Token konnte nicht validiert werden.



    Im PHP Formular wurde diese Feld eingebunden:
    Code:
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
    Wenn man sich hier den Quellcode ansieht, ist dieses drin:
    Code:
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token|attr}}">

    Zum Vergleich ein CONTAO Formular:


    Hier sieht man im Quellcode einen Wert:
    Code:
    <input type="hidden" name="REQUEST_TOKEN" value="e66f315.Rg5BsPrQY_Cxl8cGzrjkTAR_UTisF7mCFj5w6vqut-I.EX0RgquKVbn54Kxem8CNG30sJ1LfIYi2QUoc3rCX8JQhezPTo6MKlYfSoA">


    Was habe ich übersehen?

    Vielen Dank für Hinweise.

    #2
    Zitat von mv-soft Beitrag anzeigen
    Was habe ich übersehen?
    Den {{request_token}} Insert-Tag gibt es in Contao 5 nicht mehr.
    » sponsor me via GitHub or Revolut

    Comment


      #3
      Ja, in CONTAO 4 konnte ich diese Angabe noch nutzen... .


      Wie lautet nun die neue Vorgabe ? Ich hatte bereits recherchiert, doch keine Lösung gefunden:

      Code:
      {{ contao.request_token }}
      Code:
      <input type="hidden" name="REQUEST_TOKEN" value="<?= $this->requestToken ?>">

      Comment


        #4
        Wie genau hast du dieses Formular denn eingebunden?
        » sponsor me via GitHub or Revolut

        Comment


          #5
          Die PHP Datei mit dem Formular wurde in den Template- Ordner hochgeladen. Danach wurde ein Modul erstellt (siehe Anlage) und in einerm Artikel integriert.
          Angehängte Dateien

          Comment


            #6
            Damit wirst du nicht mehr weit kommen, du wirst dieses Formular als echtes Inhaltselement umsetzen müssen.
            » sponsor me via GitHub or Revolut

            Comment


              #7
              Aber an dem Formular hängen Berechnungen und ein Datenbank- Zugriff. Es ist in sich funktionsfähig, läuft lokal in WAMP. Ein ähnliches Projekt läuft unter CONTAO 4.... und nun stehe ich da und habe keine Lösung ?

              Das ist ein echtes Problem für mich... .

              Comment


                #8
                Zitat von mv-soft Beitrag anzeigen
                und nun stehe ich da und habe keine Lösung ?
                Doch, die Lösung ist das als echtes Inhaltselement umzusetzen.
                » sponsor me via GitHub or Revolut

                Comment


                  #9
                  Entschuldigung.... das verstehe ich nicht.... also nicht als Modul ?

                  Comment


                    #10
                    Modul oder Inhaltselement, ja. Aber Module sind deprecated - es gibt nur mehr Inhaltselemente in Zukunft.
                    » sponsor me via GitHub or Revolut

                    Comment


                      #11
                      Zitat von mv-soft Beitrag anzeigen
                      Aber an dem Formular hängen Berechnungen und ein Datenbank- Zugriff. Es ist in sich funktionsfähig, läuft lokal in WAMP. Ein ähnliches Projekt läuft unter CONTAO 4.... und nun stehe ich da und habe keine Lösung ?

                      Das ist ein echtes Problem für mich... .
                      In der Upgrade.md steht beschrieben, wie du es mit dem Request-Token machen kannst.


                      Da du es aber über den Template include-File hack machst, musst du das Request-Token, wie in der Upgrade.md beschrieben, holen.
                      Das Thema wäre nun aufgrund der Erkenntnise (eigenes Inhaltselement, Formular, Berechnungen, Datenbank-Zugriff) eines für "Entwicklerfragen".

                      Letztes Jahr hatte ich mit mehreren dieser "templates/" include file php Hacks in Projekten zu tun. Ich empfehle daher, sofern du weiter den File.php include-Hack nutzen wirst, zusätzlich auf die Legacy Content-Elemente zurückstellen, damit die Fehler nicht abstrakt über das Twig-Template angezeigt werden.

                      Zusätzlich solltest du dein ce_html überschreiben, damit mit Contao 5.7 nicht auch noch der Twig-Fallback greift.

                      Oder richtigerweise als Inhaltselement umsetzen.
                      Contao-Association unterstützen

                      Comment


                        #12
                        Zitat von zoglo Beitrag anzeigen
                        In der Upgrade.md steht beschrieben, wie du es mit dem Request-Token machen kannst.
                        https://github.com/contao/contao/blo...EST%5FTOKEN%3A
                        Hmm, geht das auch über ein so eingebundenes Script?
                        » sponsor me via GitHub or Revolut

                        Comment


                          #13
                          Eigentlich sollte es gehen, ja. Also @mv-soft statt {{request_token}} also
                          PHP-Code:
                          <?= Contao\System::getContainer()->get('contao.csrf.token_manager')->getDefaultTokenValue() ?>
                          » sponsor me via GitHub or Revolut

                          Comment


                            #14
                            Folgendes wurde nun in das PHP Script mit dem Formular integriert:

                            PHP- Bereich:
                            Code:
                            use Contao\System;
                            $requestToken = System::getContainer()->get('contao.csrf.token_manager')->getDefaultTokenValue();
                            HTML Bereich:
                            Code:
                            <input type="hidden" name="REQUEST_TOKEN" value="<?= $this->requestToken ?>">
                            Leider immer noch das gleiche Problem, es wird kein Token generiert für das INPUT Element.

                            Comment


                              #15
                              Wenn kein Request Token notwendig ist, wird auch keiner generiert (bzw. die Request Tokens werden auch im Nachhinein entfernt).
                              » sponsor me via GitHub or Revolut

                              Comment

                              Working...
                              X