Input feld nur mit Zahlen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschicken
alter echo
auftauchen
beispiel
bestehen
buchstabe
code
eingabe
eingabefeld
eintippen
fehler
feld
formular
http
machen
manual
syntax
url
wollen
zahl
-
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? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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 -
<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 -
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 -
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. -
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) -
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
Aber mein Code macht circa das, was der Threadersteller wollte ;)
Grüße dapizzafressa
PS: Ich hab JS auch standartmäßig für deaktiviert. :D -
das was du meinst gibt es in C++ und wahrscheinlich auch anderen Sprachen aber nicht in HTML/PHP
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage