Der Martin: $_POST Variable auf Validität überprüfen

Beitrag lesen

Hallo,

Ok, jede Menge Stoff. :)

ja, niemand hat gesagt, das wäre einfach. 🧑‍🔬

Werden die KEY -> VALUE Paarungen eines $_POST Arrays dabei intrinsisch automatisch als STRING -> STRING interpretiert

Aufgepasst! PHP ist eine schwach typisierte Sprache. Das heißt, PHP kennt und unterscheidet zwar verschiedene Datentypen, konvertiert aber je nach Kontext lustig hin und her, meist ohne dass man es merkt. Deswegen ist dein Begriff "interpretiert" hier mit Vorsicht zu genießen.
Interpretiert werden die Parameter als der Typ, der in einem bestimmten Ausdruck erforderlich ist. Steht also z.B. ein URL-Parameter in einem arithmetischen Ausdruck, wird er automatisch von String zu Number konvertiert - mit der Nebenwirkung, dass unerwartete Ergebnisse auftreten können, wenn der String etwas enthält, was nicht in einen Zahlenwert umgewandelt werden kann. So wird etwa der String "123.45" wie erwartet in die Zahl 123.45 konvertiert, der String "123,45" aber in die Zahl 123 (Achtung, Komma anstatt Dezimalpunkt!). Und der String "foo" wird einfach zu 0.

Angeliefert werden die Werte aber alle zunächst als String. Das ist auch logisch, denn sie werden ja aus den URL-Parametern gebildert, und die werden nun einmal als String im Request übermittelt. Eine weitergehende Interpretation oder Umwandlung findet nicht statt, wenn diese Werte in $_POST an das Script durchgereicht werden.

Davon unabhängig gilt, was Rolf und ich zunächst beide nicht bedacht haben: Haben die Keys bereits eckige Klammern (Array-Syntax), dann baut PHP daraus tatsächlich ein Array.

oder kann das alles mögliche sein (z.B. VAR -> BOOL, NUMBER -> NUMBER etc.)?

Nein. Du kannst die Werte nachher in deinem Script so interpretieren, wenn es dein Programmkontext so vorsieht. Aber original in $_POST sind es Strings.

Einen schönen Tag noch
 Martin

--
Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.