Der Martin: $_POST Variable auf Validität überprüfen

Beitrag lesen

Hallo,

Ich schicke Inhalte mittels eines FormDatas vom Client an den Server; - diese landen dann ja in der globalen $_POST Variable.

Bevor ich deren Inhalt nun sanitize, muss ich irgendwie vorher überprüfen, ob der Client Input überhaupt valide ist?

was bezeichnest du in diesem Fall als valide?

// DUMMYCODE

if (gettype($_POST) !== string && gettype($_POST) !== formData /* ok, zweiter Teil funktioniert so natürlich nicht, nur exemplarisch veranschaulicht... */)

PHP selbst garantiert dir, dass $_POST immer vom Typ Array ist, und dessen einzelne Elemente vom Typ String. Und wenn die POST-Daten in der für Formulare üblichen Notation key1=value1&key2=value2 ankommen, hast du diese Key/Value-Pärchen nachher sauber im $_POST-Array. Was willst du da also weiter überprüfen?

Wie überprüfe ich, ob der $_POST Variable überhaupt korrekte Werte aus einer korrekten Herkunft (formData) übergeben werden?

Die Herkunft kannst du nicht überprüfen. Du kannst und solltest nur überprüfen,

  • ob $_POST die Keys enthält, die du erwartest
  • und ob deren Werte "gültig sind", also deinen Erwartungen entsprechen.
  • Optional: Prüfen, ob es weitere Nonsense-Keys gibt, die gar nicht ins Konzept passen. Normalerweise würde man die einfach ignorieren, man könnte aber auch den ganzen Request abweisen.

Einen schönen Tag noch
 Martin

--
Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.