Tom: $_POST Variablen mit foreach einlesen

Beitrag lesen

Hello Mika,

die Werte stehen doch schon alle in einem Array, nämlich dem $_POST-Array. Du musst sie also dort gar nicht erst rausholen.

Was aber sinnvoll ist, ist ein Vergleichsarray mit den erwarteten Werten und der Zuordnung zum MySQL-Statement im Script bereitzuhalten, damit Dir niemand etwas unterschieben kann.

Dann läufst Du das Vergleichsarray mit foreach ab und schaust immer, ob im $_POST-Array ein Wert für den Schlüssel existiert. Wenn ja, vorgesehene Aktion, wenn nein, entweder Abbruch wegen Fehler oder Fake, oder eben einfach ignorieren. das hängt von Deinem Design ab.

Es kann auch nützlich sein, die an Daten gebundenen Werte von den Steuergrößen (Buttons, Checkboxen, Radios, Hidden-Vars) zu trennen, indem man ihnen einen eigenen Namens-(Sub)raum zuordnet.

Das geht z.B.,  indem man im Formular nicht schreibt

<input type="text" name="vorname" ...>

sondern bereits hier ein Array vorbereitet:

<input type="text" name="data[vorname]" ...>

Dann erscheinen die Datenwerte nachher im Array $_POST['data']['vorname'] usw., d.h., dass alle Datenwerte gebunden sind. Das ist immer dann praktisch, wenn man sie zwischenspeichern will in der Session oder sie per Hidden-Field über ein Nachfolgeformular an den nächsten request weitergibt.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)