kostenloser Webspace werbefrei: lima-city


Prüfen,ob nur Zahlen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    the-chaosplanet

    the-chaosplanet hat kostenlosen Webspace.

    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 :biggrin:und k?nnt mr helfen :smile:
    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.

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k*****i

    meinst du ob nur die zahl 1 oder 2 drinne vorkommt, dann mach doch ne iffabfrage!
  4. Autor dieses Themas

    the-chaosplanet

    the-chaosplanet hat kostenlosen Webspace.


    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...
  5. 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.

  6. 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
  7. Autor dieses Themas

    the-chaosplanet

    the-chaosplanet hat kostenlosen Webspace.


    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 :)
  8. 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.
    :wink:

    MfG
    alopex
  9. Autor dieses Themas

    the-chaosplanet

    the-chaosplanet hat kostenlosen Webspace.


    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.
    :wink:

    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?
  10. 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
  11. Autor dieses Themas

    the-chaosplanet

    the-chaosplanet hat kostenlosen Webspace.


    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 :)
  12. 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 :wink:)


    MfG
    alopex
  13. 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
    }
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!