Der Martin: preg_match | Zahl >=500 bis 9 000 000 erlauben

Beitrag lesen

Hallo,

Durch die Verwendung von intval() in Verbindung mit Vergleichswerten ist preg_match komplett überflüssig, da ungültige Angaben von intval() zu 0 gewandelt werden und somit automatisch außerhalb des erlaubten Bereiches liegen.
das siehst Du falsch. Das preg_match _sehr wohl_ einen Sinn!

kommt drauf an, wie man das sieht.

Wenn ich von einem User verlange, er soll eine ganze Zahl von 500 bis 9 Millionen eingeben, dann soll er das auch tun. Gibt er bei Deinem Code 512.4 ein (und das ist _keine_ ganze Zahl!), dann macht intval() ein 512 daraus und somit würde die Eingabe als gültig durchgehen. Sie ist es aber nicht und deshalb habe ich das preg_match dabei.

Ansichts- oder Kontextsache. Wenn ich beispielsweise nach der Fahrpraxis des Nutzers (in km) frage, erwarte ich normalerweise einen gerundeten Wert, zum Beispiel 300000. Gibt mir jemand 281732 an, ist das zwar in der Sache unsinnig, aber nicht weiter schlimm. Und wenn mir irgendein Spaßvogel sogar 122963.25 eingibt und meine Eingabevalidierung macht daraus 122963, dann ist das auch okay. Es ist also, wie gesagt, vom Anwendungsfall abhängig.

Außerdem hat es einen weiteren Vorteil, wenn ich nicht nach strengen Mustern prüfe: Ich lasse dadurch dem Nutzer die Freiheit, Zahlen so zu formulieren, wie es ihm am besten zusagt - beispielsweise 3E5 anstatt einer 3 mit fünf Nullen, oder 0xC000 anstatt 49152 (z.B. in EDV-technischen Anwendungen).

Dadurch sind auch nur jene Eingaben gültig, die ich vom User verlange/erwarte.

Ja, aber ich betrachte das als eine in den meisten Fällen nicht notwendige Beschränkung.

Dann kann man noch was für die bessere Verständlichkeit des Codes und des erlaubten Bereiches tun und statt > 499 bzw. < 9000001  jeweils >= 500 bzw. <= 9000000 schreiben.
Das ist subjektiv. Mir persönlich sagt meine Variante mehr zu.

Das ist wiederum Geschmackssache. Ich schreibe die Grenzen eines Intervalls auch lieber als "glatte" Zahlen und bin damit eher bei Kais Standpunkt.

So long,
 Martin

--
"Mutti, hier steht, das Theater sucht Statisten. Was sind Statisten?" - "Das sind Leute, die nur rumstehen und nichts zu sagen haben." - "So wie Papa?"
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(