Datentyp aus Formular überprüfen
André Laugks
- php
Hallo!
PHP übergibt alle Werte aus einem Formular als Strings, also auch ganze Zahlen wie 43.
Nun ist mir heute aufgefallen, daß man nicht 100% testen kann, ob eine ganze Zahl, also Integer, übergeben wurde.
$input kommt immer aus einem Formular
$input = 10;
gettype($input); // gibt "string" zurück
Nach langem rumtesten sind mir nur noch reguläre Ausdrücke zum testen eingefallen, also ob nur 0-9 vorkommt.
Gibt es eine andere Möglichkeit?
MfG, André Laugks
Hallo André,
PHP übergibt alle Werte aus einem Formular als Strings, also auch ganze Zahlen wie 43.
Nun ist mir heute aufgefallen, daß man nicht 100% testen kann, ob eine ganze Zahl, also Integer, übergeben wurde.
$input kommt immer aus einem Formular
$input = 10;
gettype($input); // gibt "string" zurück
Nach langem rumtesten sind mir nur noch reguläre Ausdrücke zum testen eingefallen, also ob nur 0-9 vorkommt.
String in Zahl wandeln und dann diese Zahl wieder als String abbilden und die beiden Strings vergleichen:
<?php
$test1="43";
$test2=(int)$test1;
if((string)$test2==$test1)
{
print "$test1=$test1 ist eine Zahl\n";
}
else
{
print "$test1=$test1 ist keine Zahl\n";
}
?>
Bei "43" wird eine Zahl erhalten, bei "43a" nicht.
MfG, Thomas
Hallo Thomas!
String in Zahl wandeln und dann diese Zahl wieder als String abbilden und die beiden Strings vergleichen:
Danke für den Tipp, ich habe mir jetzt mit einem regulären Ausdruck geholfen, den ich über eine Funktion aufrufe.
function fkt_isint($int_wert)
{
if(ereg("[1]*$", $int_wert) == true)
{
return true;
}
else
{
return false;
}
}
if(fkt_isint($input))
{
}
MfG, André Laugks
0-9 ↩︎