Antwort an „Rolf B“ verfassen

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
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen