kostenloser Webspace werbefrei: lima-city


Input feld nur mit Zahlen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    chatvz

    Kostenloser Webspace von chatvz

    chatvz hat kostenlosen Webspace.

    Hey,
    ich möchte das user bei ihrer anmeldung nur zahlen eingeben können
    <td>Alter</td>          <td><input name="Alter" maxlength="2" size="20" class="input" type="text"></td>        </tr>

    Also reicht das wen man als type="zahl" oder sowas hinschreibt?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Noch nie von sowas gehört, glaub nicht, dass es sowas gibt.

    Du müsstest beim Abschicken mit JavaScript prüfen, ob nur Zahlen eingegeben wurden.

    MfG
    s1m13
  4. Hallo chatvz,

    dies ist leider nicht möglich.

    Du kannst es allerdings Serverseitig überprüfen.

    mit php:

    <?php
     if(intval($_POST["Alter"] ) == $_POST["Alter"])
    {
     print "es wurde nur eine zahl eingeben";
    }
    
    ?>


    Erläuterung: Die Funktion intval wandelt die eingeben Zeichen in eine Integer Zahl um. Sofern danach noch das gleiche herauskommt wurden nur Zahlen eingeben.

    Je nach anforderung kannst du es auch mit is_numeric prüfen. Allerdings sind dor dann auch negative Zahlen und Zahlen mit exponential schreibung erlaubt.

    btw: Serverseitige überprüfung der eingeben Daten ist sowieso notwendig. (All Input Data is Evil)

    Zusätzlich könntest du noch eine Javascript überprüfung machen, und den User auf die Fehlerhafte eingabe hinweisen bevor er das Formular absendet.

    Weiterführende Links:
    http://de.php.net/manual/de/function.is-numeric.php
    http://de.php.net/manual/de/function.intval.php
  5. Autor dieses Themas

    chatvz

    Kostenloser Webspace von chatvz

    chatvz hat kostenlosen Webspace.

    ok Thx schade
    lg
    chatvz
  6. d***********a

    <script type="text/javascript">
    function nurzahlen(ID)
    {
    if(isNaN(document.getElementById(ID).value)) {document.getElementById(ID).value=parseInt
    
    (document.getElementById(ID).value);}
    
    }
    </script>
    
    <input id="zahlenfeld" onkeyup="nurzahlen('zahlenfeld')" />


    Sowas in der Art ?
    Das ganze ist mit Javascript gemacht, also solltest du trotzdem Serverseitig prüfen, ob das ganze nur aus Zahlen besteht. ;)

    Grüße dapizzafressa
  7. natürlich kann man das überprüfen ?! jedes feld kann man anhand einer syntax überprüfen, ob die eingabe richtig ist..
    z.b. ob es nur buchstaben enthält etc...

    Hier ist ersteinmal ein ganz einfaches Beispiel, welches nur schaut ob das ganze numerisch ist..
    if(is_numeric($_POST["Alter"])){
        echo $_POST["Alter"]." ist eine gültige Zahl.";
    }else{
        echo $_POST["Alter"]." ist keine gültige Zahl.";
    }

    Und ein anderes beispiel, welches die Syntaxüberprüft:
    if (preg_match("=^[0-9]+$=i",$_POST["Alter"])) { 
            echo $_POST["Alter"]." ist eine gültige Zahl.";; 
    } else { 
            echo $_POST["Alter"]." ist keine gültige Zahl.";
    }


    Beitrag geändert: 22.12.2008 10:43:36 von nilswerner

    Beitrag geändert: 22.12.2008 10:43:59 von nilswerner
  8. d***********a

    nilswerner, es scheint, als wolle er ein Eingabefeld, in das man nur Zahlen eintippen kann.
    Also willst du zB einen Buchstaben eintippen, soll dieser nicht in dem Eingabefeld auftauchen.

    Mit PHP kannst du ja nur im nachhinein prüfen, also wenn das Formular bereits abgeschickt wurde, ob die Eingabe nur aus Zahlen bestand.

  9. nilswerner, es scheint, als wolle er ein Eingabefeld, in das man nur Zahlen eintippen kann.
    Also willst du zB einen Buchstaben eintippen, soll dieser nicht in dem Eingabefeld auftauchen.

    Mit PHP kannst du ja nur im nachhinein prüfen, also wenn das Formular bereits abgeschickt wurde, ob die Eingabe nur aus Zahlen bestand.

    Naja, man könnte beim abschicken alle buchstaben rausfiltern ^^
    oder einfach nur prüfen, ob das feld nur aus zahlen besteht.
    Sollte jedoch ein feld fehlerhaft sein, kommt anschließend eine fehlermeldung.
    um das formular komplett zu verarbeiten und z.b. zu speichern muss die bedingung einfach nur sein, das keine fehleingaben (sei es von der syntax, der länge etc) gemacht wurden sind...

    Klar ist jedoch, das man mit php nicht sofort bei der eingabe schon anzeigen lannsen kann, das hier ein fehler gemacht wird..
    aber wenn man z.b. auf senden klickt, kann man alles überprüfen ;) (was ich persönlich sowieso besser finde, da ich JS überall aus hab)
  10. d***********a

    Mein obiger Javascript Code, der, wie mir grad auffällt, von LC ein bisschen "verschoben" worden ist, löscht alls nicht-Zahlen direkt beim reintippen wieder raus.
    Wenn JS deaktiviert ist funktioniert das natürlich nicht, allerdings find ich trotzdem, dass es eine nette Beigabe ist. Umgehen kann man alles Browserseitige.

    Ich sagte ja, dass man das ganze noch serverseitig prüfen müsse.
    Wahrscheinlich wäre eine Kombination aus meinem JS und deinem PHP optimal :megarofl:
    Aber mein Code macht circa das, was der Threadersteller wollte ;)


    Grüße dapizzafressa

    PS: Ich hab JS auch standartmäßig für deaktiviert. :D
  11. das was du meinst gibt es in C++ und wahrscheinlich auch anderen Sprachen aber nicht in HTML/PHP
  12. 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!