dedlfix: Wie prüft man ein Checkbox-Feld serverseitig effizient?

Beitrag lesen

Tach!

Bei dem zitierten Text geht es im Werte. Deine Frage bezieht sich aber anscheinend auf Keys.

Bisher habe ich, von einem Checkbox-Feld ausgehend, folgendes:

	if(isset($_POST['MailRecip'])) {
		foreach ($_POST['MailRecip'] as $name) {
		  //if(preg_match('/^[a-zA-ZäöüÄÖÜß\-]{3,40}$/', $name)==false) exit(header('Location: ...'));
			if (array_key_exists($name, array_Recip)==false) exit(header('Location: ...'));
		}
}

Die sinnvollere Methode finde ich, dass man eine Liste der erwarteten Felder hat und durch diese laufend schaut, ob dazu Eingaben vorliegen. Überzählige Keys im $_POST ignoriert man.

Was aber, wenn andere gleichbenannte Formularelemente kommen, wie ließe sich das umfassend lösen?

In einem PHP-Array können Keys nicht mehrfach auftreten, auch nicht in $_POST. Bei gleich benannten Formularfeldern gewinnt das spätere.

Zu beachten ist, wenn der Name ein [] am Ende hat, dann gibt es zwar auch nur einen Key, aber der Wert ist kein Skalar sondern ein Array.

dedlfix.