Ergebnis 1 bis 27 von 27

Thema: Ungültiger Anfrage-Token bei eigenem Formular

  1. #1
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard Ungültiger Anfrage-Token bei eigenem Formular

    Hallo ich habe einiges zu Anfrage-Token gelesen, komme aber nicht weiter.

    AUSGANGSSITUATION:
    Ich habe einen kleinen Finanzierungsrechner geschrieben (Kaufsumme/Anzahlung/Laufzeit).
    Effektiver Jahreszins, Mindestlaufzeit usw. kommt aus einer MM-Tabelle.
    Das Script habe ich als "finanzierung.php" unter Templates abgelegt und via Modul "eigenes HTML" included.

    In das Formular (POST) habe ich folgendes hidden-field gelegt:
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">

    PROBLEM:
    • Script anfangs am Rechner getestet, lief.
    • Tags darauf mal auf dem iPad getestet, Ungültiger Anfrage-Token
    • Dann auf dem Rechner getestet lief hier plötzlich auch nicht mehr.
    • Anfrage-Tokens in den Backend-Einstellungen deaktiviert, beiden Geräte verarbeiten das Script wie gewünscht
    • Wieder aktivert, Script läuft nun immernoch auf dem Rechner, nicht mehr auf dem iPad
    • Noch mal deaktiviert, getestet und wieder aktiviert, Script läuft nun plötzlich auf beiden Geräten, auf weiteren Rechnern aber nicht.



    Kann mir jemand diese Willkür erklären und was ich tun muss?
    Vielen Dank!!
    Geändert von Spelmann (11.04.2016 um 11:41 Uhr)

  2. #2
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Hi, ich bin mir grad gar nicht mehr sicher, ob der insert_tag in einem includierten PHP verfügbar ist... helf mal kurz, wie sieht der Quellcode der Seite aus?
    Speziel dieses hidden-Field?

    Danke..

  3. #3
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Hi Lengen1971,

    Das hier ist es im wesentlichen:

    PHP-Code:
            <form action="http://www.adresse.de/finanzierung.html" method="post" enctype="multipart/form-data" id="finanzierungsrechner">
                <
    label for="kaufsumme">Kaufsumme (in Euro
                    <
    input name="kaufsumme" type="text">
                </
    label>

                
    usw...

                <
    input type="submit" value="berechnen" name="berechnen" class="btn btn-primary">
                <
    input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
            </
    form
    (Das Modul "eigenes HTML" mit includierter "finanzierung.php" aus dem Ordner Templates befindet sich in der selben Seite, die über das Formular aufgerufen wird.)

    Naja, ich hab mir schon gedacht, dass das so vielleicht ein bisschen arg dirty ist. Muss ich vielleicht ein FE Modul erstellen und das dann ordentlich registrieren um den request Token nicht deaktivieren zu müssen, wie ich es gerade tue? Ich filtere zwar meine POST Daten nach bestem Wissen, aber das Feature wird schon seinen Grund haben.

  4. #4
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Guten Morgen,

    ok, ich meinte, wenn du die Seite mit dem Formular im Browser aufrufst und dann den Quellcode betrachtest, ist dann der Request-Token drin?

    VG

  5. #5
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Achso, Du meintest, ob das inserttag für den Request Token überhaupt interpretiert wird?
    Ja wird er. Im Quelltext habe ich eine 32stellige Zeichenfolge als value im entsprechenden Feld.

  6. #6
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Hi, ja, das meinte ich. Somit weiß ich aber auch grad nicht weiter.

    Was aber bei uns immer wieder auffällt, ich der hartnäckige Cache vom iPad. Aber du schreibst ja, auch auf Desktops tritt das auf...

    VG

  7. #7
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Ok, danke Dir für deine Unterstützung.

    Ich recherchiere mal, ob es so was wie Laufzeiten für den Request Token gibt. Wenns wirklich "nur" ein Cache Problem ist kann ich ja da vielleicht was machen.

  8. #8
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Jetzt taucht der Hinweis "Ungültiger Anfrage-Token" beim Absenden des Formulars sogar dann auf wenn ich im Backend die Anfrage-Tokens deaktiviert habe.
    Ich steh echt auf dem Schlauch und komme nicht weiter.

    Hat bitte noch jemand eine Idee?

  9. #9
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Hi,

    tatsächlich kenn ich das Problem nicht und würde jetzt mal vesuchen, ob du die Contao Version nicht mal updaten könntest; vielleicht ist das ein Bug.

    Sonst auch alles probiert? Andere Interetverbindung, evtl. anderes Hosting? Nur, um evtl. den Fehler aweng einzgrenzen.

    VG

  10. #10
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Gesicht zeigt die Zunge

    Puhh,

    ich hab Contao noch nie upgedatet.
    Umgezogen bin ich schon, aber bei einem einfachen Umzug kopiere ich den Fehler ja dann mit.

    Ich versuch mein bestes, aber meine anfängliche Begeisterung über Contao erleidet in der letzten Zeit arge Schrammen

  11. #11
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Versteh ich... ist aber nicht die Regel, Contao ist ein tolles System und ein solch hilfsbereites Forum findet man selten.

    Gibt´s eigentlich einen Demo-Link?

    VG

  12. #12
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Ich habe jetzt mal auf einem anderen Host eine "nacktes" Contao 3.5.9 installiert und wie oben beschrieben ein simples POST Formular mit hidden Field für den Request Token in eine PHP geschrieben und via eigenes HTML mit Inserttag {{file::finanzierung.php}} eingebunden. Und siehe da: Invalid Request Token!

    Es scheint also, als könne Contao schlicht ein solches Formular nicht zuverlässig verarbeiten. Mal gehts, mal nicht.

    Stellt sich die Frage wie dann, ohne selber ein Modul schreiben zu müssen.

    Ich möchte gern, dass der Besitzer der Seite seine Daten für die Berechnungsgrundlage der Finanzierung in den MetaModels verwaltet, der User mit den dort gespeicherten Daten dann aber im Frontend via Formular Berechnungen anstellen kann.

  13. #13
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Hi,

    genau das hab ich grad auch gemacht und es funktioniert einwandfrei... irgendwie seltsam.

    Sag mal, die Weiterleitungsseite in deinem Formular liegt aber auch unter dem gleichen 'Startpunkt einer Webseite' wie die Seite mit dem Formular, oder?

    VG

  14. #14
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Ist ja kein Contao Formular was ich da verwende.

    Der Aufruf der Seite nach Absenden des Formulars erfolgt wie oben beschrieben schlicht im <form> Tag:
    HTML-Code:
    <form action="http://www.adresse.de/finanzierung.html" method="post" enctype="multipart/form-data" id="finanzierungsrechner">
    Geändert von Spelmann (18.04.2016 um 13:48 Uhr)

  15. #15
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    ... ich hab auch kein Contao-Formular sondern ein Hart-Codiertes (wenn du so willst) in einer php-Datei, inkludiert über {{file::}} aus dem template-Verzeichnis.

    Geht...

  16. #16
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Ging bei mir am Anfang ja auch, das ist ja der Kummer.
    Momentan gehts bei mir am Rechner mal wieder unter Chrome, FF und IE

    An einem anderen Arbeitsplatz unter FF gehts nicht
    Auf meinem iPad und unter Android konsequent nicht.

    Cache bei allen Browsern mehrfach gelöscht
    Contao Cache ebenfalls mehrfach gelöscht

    Du schreibst was Betreff Weiterleitungsseite. Damit meinst Du dann die Adresse im <form> Tag, oder muss ich noch was machen?

  17. #17
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    ne, paßt scho, ich hatte kurz so´ne Idee, dass du evtl. mehrere Startpunkte im Backend angelegt hast, das sind die Seiten mit Icon Weltkugel.

    Nicht, dass die Weiterleitungsseite nicht unterhalb des gleichen Starpunktes liegt. Aber dann müßte es konsquenterweise überhaupt nie gehen..

    Ich hab´s jetzt (deinen Link) über 3 Endgeräte getestet, geht einwandfrei. FF/Mac, IE/PC, Android Samsung.

    VG

  18. #18
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    Krass.
    Löst natürlich mein Problem nicht, verweist aber doch offensichtlich auf ein Caching-Problem oder?
    Ich hab in den verschiedensten Netzwerken zu den verschiedensten Zeiten mal ein Ergebnis und mal nicht.

  19. #19
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard Gelöst ???....

    ...scheint so !!

    Statt im <form> Tag die URL hard codiert zu schreiben habe ich es mal mit inserttags versucht und landete bei folgender Schreibweise
    HTML-Code:
     <form action="<?php echo $this->replaceInsertTags( '{{env::request}}' ); ?> ...usw."
    Jetzt läuft das Script bei mir auf allen Arbeitsplätzen und Devices. Ich hoffe auch morgen noch.

    Vielen Dank Lengen1971 für deine intensive Unterstützung!!

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

    Standard

    Oder
    PHP-Code:
    <form action="<?= \Environment::get('requestUri'?>">…

  21. #21
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Moin,

    das einzigen, was mir sonst noch aufgefallen ist, ist der enctype, den hab ich nicht in meinem Formular. Ich meine aber, das hat damit nichts zu tun.

    *daumen drück*

    VG

  22. #22
    Contao-Nutzer Avatar von Spelmann
    Registriert seit
    24.11.2012.
    Ort
    Nördlich von Berlin
    Beiträge
    234

    Standard

    LÄUFT! (leider gibt's keinen Smiley der vor Freude im Kreis springt)
    Kann man hier eigentlich einen Thread irgendwo als "erledigt" markieren?

  23. #23
    Contao-Fan Avatar von herr rilke
    Registriert seit
    29.01.2011.
    Ort
    Münster
    Beiträge
    401

    Standard

    hallo spelmann,
    hallo spooky,

    vielen dank für den thread.

    ich habe ein ähnliches problem - wo es browser-abhängig (?!) die fehlermeldung zum ungültigen token gibt.

    auch ich inkludiere mit
    Code:
    {{file::templateverzeichnis/formular.php}}
    das formular, das aus einer externen quelle eines drittanbieters (vergleichs-service) kommt und auch wieder auf eine externe URL versendet.

    das ist soweit auch einwandfrei, lief im alten contao 2.9 fein und nun unter 3.5.8 gibt es diese effekte.

    nun kann ich aber den vorgeschlagenen lösungsansatz von euch nicht wählen, weil

    Code:
    <form action="<?= \Environment::get('requestUri') ?>">…
    und

    Code:
     <form action="<?php echo $this->replaceInsertTags( '{{env::request}}' ); ?>
    ja allenfalls auf meine eigene URL zeigen würde.

    oder habe ich etwas misverstanden?

    wäre euch dankbar, wenn ihr mir das erklären könntet.


    viele grüße aus münster!

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

    Standard

    Wenn das Formular tatsächlich eine Action hat, die nicht auf die Contao Installation geht, dann sollte es kein Problem geben.

  25. #25
    Contao-Fan Avatar von herr rilke
    Registriert seit
    29.01.2011.
    Ort
    Münster
    Beiträge
    401

    Standard

    mh, ok, du hast recht:

    es gibt zuerst ein handcodiertes formular, dass eine contao-generierte seite mit GET parameter aufruft und von da geht es erst weiter an die andere adresse.

    werde versuchen, in den formularen also den token einzubauen und sehen, ob das wirkt.

    danke für's mitdenken!

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

    Standard

    Da brauchst du eigentlich nur folgendes in dein Formular einfügen:
    PHP-Code:
    <input type="hidden" name="REQUEST_TOKEN" value="<?= \RequestToken::get() ?>">
    oder
    PHP-Code:
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}"

  27. #27
    Contao-Fan Avatar von herr rilke
    Registriert seit
    29.01.2011.
    Ort
    Münster
    Beiträge
    401

    Standard

    super! danke dir für deine unterstützung!

    karsten

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
  •