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
sumpsi - posui - obstruxi