Prüfen,ob nur Zahlen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
ausdruck
beliebige ziffer
buchstabe
dank
ding
eingegebenen strings
exponent
http
integer typen
klappen
manual
match
mindestzahl
problem
ungeeignet versuche
vergessen
vorkommen
zahl
ziffer
-
Hiho
Ich bin grade dabei ein bestell-script f?r unsre Seite zu schreiben, klappt auch bisher wunderbar, aber jetzt hab ich folgendes problem:
ich m?chte ?berpr?ben, ob in einem bestimmten feld im forular nur zahlen eingegeben wurden. also es d?rfen nur kombinationen aus 0;1;2;3;4;5;6;7;8;9 vorkommen.
ider inhalt des feldes wurde schon in ne variable umgewandelt, d.h. die variable $zahl soll nur zahlen enthalten.
hoffe ihr versteht was ich meine und k?nnt mr helfen
hab schon erfolglos gegoogelt, aber die sachen, die ich da gefunden hab ham nicht getan.
achja: ich hab nicht wirklich ahnung von php, kann also mit aussagen "mach das doch mit ereg()" o.?. nicht viel anfangen, soweit war ich n?mlich auch schon.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
meinst du ob nur die zahl 1 oder 2 drinne vorkommt, dann mach doch ne iffabfrage!
-
meinst du ob nur die zahl 1 oder 2 drinne vorkommt, dann mach doch ne iffabfrage!
nein echt? ne if abfrage?
was du nicht sagst, so schlau bin ich auch, und wenn ich schreibe "ob nur zahlen eingegeben wurden" dann meine ich nicht ob die zahl 1 oder 2 drin vorkommt, sondern ob die eingabe nur zahlen enth?lt und sonst nichts, ist das so kompliziert?. sorry, wenn ich n bissl aggressiv r?berkomm, aber man kann auch erstmal die frage lesen, bevor man postet...
-
Da so etwas nicht geht:
if($zahlen == $zahlen * 1)
{
echo "Es sind nur Zahlen eingegeben worden";
}
else
{
echo "Es wurden auch Buchstaben eingegeben";
}
gilt es:
Hier nachzulesen
http://www.selfphp.info/funktionsuebersicht/variablen_funktionen.php
und die L?sung ist mit dem Befehl
"gettype"
in Sicht.
-
Hallo the-chaosplanet!
Da die Integer-Typen von PHP auch Gleitkommazahlen und Exponenten enthalten d?rfen, sind sie f?r dein Problem eher ungeeignet. Versuche es doch mal mit "regular expressions":
if( preg_match("/\d{min,max}/", $meine_zahlen) ) {
// dumm di dumm
}
Wobei min und max durch die Anzahl der Ziffern ersetzt werden m?ssen (min: Mindestzahl, max: Maximalzahl). \d steht ?brigens f?r eine beliebige Ziffer.
MfG
alopex -
Hallo the-chaosplanet!
Da die Integer-Typen von PHP auch Gleitkommazahlen und Exponenten enthalten d?rfen, sind sie f?r dein Problem eher ungeeignet. Versuche es doch mal mit "regular expressions":
if( preg_match("/\d{min,max}/", $meine_zahlen) ) {
// dumm di dumm
}
Wobei min und max durch die Anzahl der Ziffern ersetzt werden m?ssen (min: Mindestzahl, max: Maximalzahl). \d steht ?brigens f?r eine beliebige Ziffer.
MfG
alopex
also erstmal danke f?r die hilfe, das funktioniert soweit auch, aber das problem ist, wenn zahlen UND buchstaben vorkommen, wird trotzdem weitergemacht.
es soll ja ?berpr?ft werden, ob NUR zahlen vorkommen
gleiches gilt f?r den vorschlag von frankgo
ich hab hier auch ne ?berpr?fung f?r die mailadresse
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $mail))
aber ich krieg das nicht hin, dass nur zahlen erlaubt sind.
das problem ist n?mlich, wenn z.B. jemand 23 eingeben will, sich dabei aber vertippt und z.B. 2w3 eingibt, dann rechnet das script mit "2" weiter und es kommen falsche ergebnisse raus :) -
Sorry!
Da hab ich mal wieder geschusselt:
if( preg_match("/^\d{min,max}$/", $meine_zahlen) ) {
// dumm di dumm
}
Ich habe die Zeilenanfangs- und Zeilenendmarkierer vergessen.
Probiers noch mal, jetzt m?sste es klappen.
Ach ja, ?brigens: Die Dinger hei?en Ziffern. Zahlen sind aus mehreren Ziffern zusammengesetzt.
MfG
alopex -
Sorry!
Da hab ich mal wieder geschusselt:
if( preg_match("/^\d{min,max}$/", $meine_zahlen) ) {
// dumm di dumm
}
Ich habe die Zeilenanfangs- und Zeilenendmarkierer vergessen.
Probiers noch mal, jetzt m?sste es klappen.
Ach ja, ?brigens: Die Dinger hei?en Ziffern. Zahlen sind aus mehreren Ziffern zusammengesetzt.
MfG
alopex
ok, danke das funktioniert :)
kann ich damit auch mehrere variablen gleichzeitig ?berpr?fen?
und kann ich damit auch die l?nge des eingegebenen strings ?berpr?fen? z.B. um plz zu ?berpr?fen? -
Wie jetzt mehrere Variablen gleichzeitig? Tu das mal n?her erl?utern tun.
Wenn du aus {min,max} einfach {anzahl} machst, pr?ft der Ausdruck nur Zahlen mit der Anzahl anzahl von Ziffern.
Guckst du auch hier f?r preg_match():
http://de.php.net/manual/de/function.preg-match.php
und hier f?r (Perl-)Regul?re Ausdr?ck in PHP:
http://de.php.net/manual/de/ref.pcre.php
MfG
alopex -
Wie jetzt mehrere Variablen gleichzeitig? Tu das mal n?her erl?utern tun.
Wenn du aus {min,max} einfach {anzahl} machst, pr?ft der Ausdruck nur Zahlen mit der Anzahl anzahl von Ziffern.
Guckst du auch hier f?r preg_match():
http://de.php.net/manual/de/function.preg-match.php
und hier f?r (Perl-)Regul?re Ausdr?ck in PHP:
http://de.php.net/manual/de/ref.pcre.php
MfG
alopex
naja, so wies jetzt is, pr?ft "er" das ja f?r die variable $meine_zahlen ich hab da aber noch n paar andre variablen, die auch nur aus zahlen bestehen d?rfen :) -
Wosndadasproblem?
Dann setze doch einfach die Variablennamen ein, die du brauchst. Ansonsten schlage ich dir vor, die zu pr?fenden Variablen in ein Array zu packen:
$vars_2_check = array(
'stueckzahl' => $wert
'ne_andere_zahl' => $ein_anderer_wert,
'noch_ne_zahl' => $noch_ein_wert
);
Dann kannst du die preg_match()-Abfrage in eine sch?ne foreach()-Schleife packen:
$error = 0;
foreach( $vars_2_check as $key => $val ) {
if( !preg_match("/regulaerer_ausdruck/", $val) ) {
$error = 1;
break;
}
}
if($error) {
// Fehlermeldung ausgeben?
// ...
}
So in der Art jedenfalls. (Mach dir doch auch mal 'n Kopp )
MfG
alopex -
the-chaosplanet schrieb:
[...]
und kann ich damit auch die l?nge des eingegebenen strings ?berpr?fen? z.B. um plz zu ?berpr?fen?
Das kannst du mit strlen() machen:
if (strlen($plz) > 5) {
# PLZ hat mehr als 5 ZEICHEN
} -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage