Welcher Datentype?
Toby
- php
Hallo zusammen,
ich habe bis jetzt schon viel versucht es aber nicht hinbekommen:
Wie kann ich eine formulareingabe überprüfen was es für ein datentype ist? also ich möchte das das formular abbricht wenn die eingabe,kein integer ist.
danke schon mal im vorraus.
Toby
Hallo zusammen,
ich habe bis jetzt schon viel versucht es aber nicht hinbekommen:
Wie kann ich eine formulareingabe überprüfen was es für ein datentype ist? also ich möchte das das formular abbricht wenn die eingabe,kein integer ist.
danke schon mal im vorraus.
Toby
Hallo Toby,
Du hast Deine Frage mit "PHP" gekennzeichnet, also gehe ich davon aus, dass Du das Fomular (komplett) ausgefüllt übertragen lässt und dann auf dem Server prüfen willst.
"Datentypen" kennt HTML überhaupt nicht. Es gibt nur den Typ Text. Alle Daten werden als Texte erfasst, übermittelt und angezeigt.
Wenn Du nun also sicherstellen willst, dass in einem Eingabefeld die Regeln für den Datentyp Numeric oder Integer oder Decimal oder Datum eingehalten wurden, musst du Dir diesen Regelsatz aufbauen und auf den übertragenen Wert anwenden.
Bei PHP gibt es da verschiedene vorbereitete Funktionen, die dir dabei helfen:
is_int(mixed var);
is_double(mixed var);
is_long(mixed var);
usw.
Um es für den Benutzer komfotabel zu machen, solltest Du aber eigene Prüfroutinen schreiben.
Grüße aus http://www.braunschweig.de
Tom
Hallo Toby, hallo Thomas
Wie kann ich eine formulareingabe überprüfen was es für ein datentype ist? also ich möchte das das formular abbricht wenn die eingabe,kein integer ist.
Formularfelder werden immer als String übertragen. Aus diesem Grunde helfen die is-Funktionen überhaupt nicht, denn die Prüfen auf den tatsächlichen Typ und der Übergabewert ist imm vom Typ string.
is_int(mixed var);
is_double(mixed var);
is_long(mixed var);
Benötigt wird eine Funktion, die einen String daraufhin prüft, ob er eine nummerische Zeichenfolge enthält. Dies erledigt die Funktion is_numeric(). Deren Rückgabewert gibt an, ob der String eine Zahl repräsentiert, erfaßt allerdings auch Fließkomma-Zahlen.
Ob eine String ein Integer ist, läßt sich so prüfen:
if ($var === (string)(int) $var) echo "integer";
else echo "kein integer";
(string)(int) $var wandelt den Wert der Variable in ein Integer um (Dezimalzahlen werden abgeschnitten, Zahlen nur bis zum ersten ungültigen Zeichen interpretiert) und dieses Ergebnis dann wiederum in ein String. Anschließend werden beide Werte verglichen. Sind sie gleich kann es nur ein Integerwert sein.
Viele Grüße
Antje
Hallo,
Wie kann ich eine formulareingabe überprüfen was es für ein datentype ist? also ich möchte das das formular abbricht wenn die eingabe,kein integer ist.
<?php
$abc=$_POST["abc"];
if(is_numeric($abc) && gettype($abc*1)=="integer")
print "$abc ist eine ganze Zahl";
else print "$abc ist keine ganze Zahl";
?>
MfG, Thomas
Hallo zusammen,
vielen dank an euch drei..
Habt mir sehr geholfen.
Grüße aus der stadt des ewigen zweiten,
Toby