Raketenwilli: Ist es bei einer POST-Request nötig, den Submit-Button zu prüfen?

Beitrag lesen

if ( isset( $_POST['sign-up'] ) ) {

Ich nehme an, dies geschieht aus Sicherheitsgründen,

Naja. Eher zur Vereinfachung. Denn man muss sowieso für jedes erwartete Item prüfen, ob der Schlüssel (Name) vorhanden und das Item mit passenden Daten befüllt wurde.

Da aber viele Requests von Angreifen oder Testern mit Daten gefüllt werden, die mit dem als Referer vermuteten Formular nichts zu schaffen haben, kann man sich nach der Prüfung auf den Key und Wert des Submit-Buttons in Negativ-Fall den ganzen Rest sparen.

Vollständig sieht Dein Beispiel grob so aus:

if ( isset( $_POST['sign-up'] ) ) {
    versuche_daten_zu_verarbeiten();
} else {
    sende_formular();
}

Denn gerade bei „Affenformularen“ (das gleiche Skript erzeugt das Formular und verarbeitet die Daten), hat man so eine einfache Möglichkeit, ohne viel Firlefanz die Frage zu entscheiden, ob das Formular gesendet oder mutmaßlich vorhandene andere Daten geprüft oder verarbeitet werden sollen. Das ist regelmäßig der Hauptzweck des von Dir gezeigten Vorgehens.

Ein weiteter Zweck:

Ein Formular kann mehrere Submitter haben. Dann muss man für die Auswahl der nachfolgenden Aktionen natürlich prüfen welcher davon mit dem Klick, Tastendruck oder Fingertipp „erfreut“ wurde.