In Eingabefeld nur Zahlen erlauben

  • Hallo!

    Ich suche ein php-Befehl, der es verhindert, dass User in einem Eingabefeld etwas anderes als Zahlen eingeben können.
    Es dürfen also auch keine Kommas oder Punkte eingegeben werden.

    Weiss jemand Rat?

    Gruss,
    scabinho

  • php kann sowas erst nachm absenden prüfen.. wenn du es on-the-fly brauchst is javascript dein gesuchtes helferlein
    am besten den input gegen ne regular expression prüfen

    allerdings solltest du dann beides machen.
    Sonst is bei ausgeschaltetem js Essig mit der schönen Überprüfung.

    PHP: is_numeric()


  • Ja, eine js-Überprüfung sollte eine PHP-Überprüfung nur ergänzen und nicht ersetzen.
    Wenn es wirklich nur Ziffern sein sollen würde ich aber noch eher ctype_digit() nehmen. is_numeric() lässt ja noch paar andere Zeichen zu.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Ja, eine js-Überprüfung sollte eine PHP-Überprüfung nur ergänzen und nicht ersetzen.
    Wenn es wirklich nur Ziffern sein sollen würde ich aber noch eher ctype_digit() nehmen. is_numeric() lässt ja noch paar andere Zeichen zu.

    da hast du natürlich recht :)
    Hatte überlesen, dass auch keine punkte (also dezimalzahlen) erlaubt sein sollen.


  • Zitat von php.net


    Hinweis: Um zu testen, ob eine Variable eine Zahl oder eine numerische Zeichenkette ist (wie zum Beispiel Formularangaben, die immer Zeichenketten sind), müssen Sie is_numeric() verwenden.

    Mit numerischen Strings kann man rechnen ;)


  • Hallo!

    Ich suche ein php-Befehl, der es verhindert, dass User in einem Eingabefeld etwas anderes als Zahlen eingeben können.
    Es dürfen also auch keine Kommas oder Punkte eingegeben werden.

    Weiss jemand Rat?

    Gruss,
    scabinho

    Da bietet es sich doch an, die Eingabe intern einfach nach Integer zu konvertieren.

    PHP
    $id = isset ($_POST['id'])? (int)$_POST['id']: 0;
    
    
    //oder:
    isset($_POST['id'])? settype($_POST['id'], "integer"): ;
    $id=$_POST['id'];

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.