Hallo, bei der entwicklung eines Formulars bin ich auf etwas gestoßen was ich nicht kapiere.
Ich nutze ein Affenformular, also eine php Datei die sich selbst aufruft, wenn die eingegeben Daten nicht valide sind.
Gibt der nutzer alle Daten korrekt ein, möchte ich dass das Formular nicht mehr angezeigt wird, und stattdessen etwas durchgeführt wird. (also if else). Ich habe mir überlegt eine Session Variable auf true (alle eingaben richtig) bzw. false zu verwenden. Mein Code bis jetzt sieht so in abgespeckter Version aus (die validitätsabfragen habe ich der übersicht wegen rausgenommen):
Alles anzeigen
Bei dem Kommantar mit den 3 !!! simuliere ich die Benutzereingabe. Geht man davon aus, dass die ersten beiden Benutzereingaben falsch sind, wird korrekterweise das Formular erneut gesendet. Stelle ich die $_SESSSION['valid'] jetzt aber auf true (die Benutzereingaben sind valide), muss ich 2 x auf den submit Button drücken, bevor das Formular NICHT mehr gesendet wird.
Woran liegt das? Ich hätte gerne dass man den nur 1 x drücken muss. Was muss ich ändern?
Ich nutze ein Affenformular, also eine php Datei die sich selbst aufruft, wenn die eingegeben Daten nicht valide sind.
Gibt der nutzer alle Daten korrekt ein, möchte ich dass das Formular nicht mehr angezeigt wird, und stattdessen etwas durchgeführt wird. (also if else). Ich habe mir überlegt eine Session Variable auf true (alle eingaben richtig) bzw. false zu verwenden. Mein Code bis jetzt sieht so in abgespeckter Version aus (die validitätsabfragen habe ich der übersicht wegen rausgenommen):
Quellcode
- <?php
- session_start();
- //Prüfe ob es der erste Aufruf ist, bzw. rufe das Formular auf wenn die Daten NICHT valide sind.
- if(!isset($_SESSION['valid']) || $_SESSION['valid'] == false)
- {
- echo "form wird gesendet"
- ?>
- <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
- <?php
- //!!! Hier stelle ich dar ob die Eingabe richtig oder falsch ist !!!
- $_SESSION['valid'] = false; ?>
- <input type="submit" name="submit" value="Abrufen">
- </form>
- <?php
- }
- else
- {
- echo "form wird NICHT gesendet"
- ?>
- <?php
- }
- ?>
Bei dem Kommantar mit den 3 !!! simuliere ich die Benutzereingabe. Geht man davon aus, dass die ersten beiden Benutzereingaben falsch sind, wird korrekterweise das Formular erneut gesendet. Stelle ich die $_SESSSION['valid'] jetzt aber auf true (die Benutzereingaben sind valide), muss ich 2 x auf den submit Button drücken, bevor das Formular NICHT mehr gesendet wird.
Woran liegt das? Ich hätte gerne dass man den nur 1 x drücken muss. Was muss ich ändern?