Rolf B: $_POST Variable auf Validität überprüfen

Beitrag lesen

Hallo Manuel,

dass $_POST ein Array ist (ein String ist es nie), brauchst du nicht zu prüfen. Dass ein Eintrag in $_POST ein String ist, auch nicht.

Prüfen musst du:

Bevor du in die POST Verarbeitung einsteigst: hat der Client einen POST Request geschickt (über $_SERVER['REQUEST_METHOD'])

Bevor du $_POST['foo'] ausliest: hat der Client dafür einen Wert geschickt. Denn sonst schreibt PHP eine Notice wegen Zugriffs auf ein nicht existierendes Arrayelement. Dafür gibt's mehrere Wege:

  • isset($_POST['foo']) liefert true, wenn ein Wert geschickt wurde
  • empty($_POST['foo']) liefert false, wenn kein Wert geschickt wurde oder wenn er leer ist
  • die filter... Funktionen verwenden, soweit ich weiß, Defaultwerte ("" oder 0), wenn kein Wert geschickt wurde
  • einen Defaultwert kannst du auch mit dem null coalescing Operator ?? erzeugen:

$foo = $_POST['foo'] ?? 'Bar';

Damit kannst du dann in Plausis und Sanitizing einsteigen.

Rolf

--
sumpsi - posui - obstruxi