[PHP] String muss integer sein

TTlong

Angesehenes Mitglied
Hi,

ich habe auf einer Seite einen GET-Parameter der immer vom Typ integer ist. Im Zuge von Sicherungsmaßnahmen möchte ich diesen Parameter aber nicht nur prüfen sondern auch undbedingt als integer setzen, ganz gleich ob der String tatsächlich integer ist oder nicht.

PHP bietet ja bsp. die Funktionen settype() und/oder intval() an. Ich habe jedoch bei dem GET-Parameter fast immer zwingend führende Nullen.

Beide Funktionen machen aus meinem String zum Beispiel: 00001 -> 1

Gibt es eine Möglichkeit die führenden Nullen beizubehalten und den String dennoch zu "formatieren"?



MfG TTlong
 
versteh ich irgendwie nicht... bei Integer gibt's keine führende Nullen, in keiner Programmiersprache. Das einzige was übrig bleibt ist String.

Du kannst es intern als Integer speichern, und extern als String führen, also wenn der String reinkommt, erst mit is_numeric prüfen, dann zum Integer konvertieren... zB:

CODE
$intern = 1; // irgend ein Default-Wert
if (is_nummeric($input))
$intern = (int)$input;



und wenn der Wert wieder rausgegeben wird, formatierst du ihn wieder mit Nullen:


CODE
$output = sprintf('%05d', $intern);



in diesem Fall ist "5" die Anzahl der Stellen, und die "0" davor sagt, dass mit Null aufgefüllt wird.
 
Maik liegt richtig mit seiner Argumentation.

Verwende doch einfach eine Überprüfung mittels regexp ([0-9]).
Was spricht sicherheitstechnisch dagegen?

Gruß Michi
 
Integer ist nunmal ein Zahlenwert. Und bei Zahlenwerten gibt es keine führenden Nullen.

 
Zurück
Oben