Formular überprüfen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abstand
antwort
besucher
code
darstellen
datum
eingabe
falsch beitrag
formular
hoffen
inhalt
kleiner fehler
konflikt
letzte frage
live http
nachname
sagen
string
text
versuchen
-
Hallo,
habe mir eine kleine HP gebastel mit einem Formular. Sie wird nicht so oft besucht und trozdem, wenn erhalte ich immer wieder Formulare die \"ungültige\" Namen angaben oder sonstiges enthalten. Deshalb kam mir die Idee, irgendwie die Formularfelder zu prüfen auf \"Wahrheit\".
Hätte mir das so gedacht:
Ich kann bei jedem Formularfeld gültige, oder ungültige Begriffe eingeben. Dies alles im HTML. Wenn jetzt etwas \"falsches\" eingegeben wurde, sollte da ein Text stehen oder den Besucher auf eine andere Seite verweisen (direkt Link).
Ist dies möglich? Alles im HTML?
Oder stelle ich da zu hohe Ansprüche?
Wäre froh wenn mir jemand helfen könnte
Gruss
Meron -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Es gibt da an sich 2 Möglichkeiten, die du hier hast: Die eine ist Javascript, die andere PHP.
Du könntest mit JS den Inhalt des Eingabefeldes überprüfen, sobald eine Änderung vorgenommen wurde. Dies würde dann \'direkt\' funktionnieren, will sagen, die Seite muss dazu nicht neugeladen werden.
Einen \'neuen\' Text stellst du am einfachsten rein, indem du beispielsweise einen DIV-Kasten erstellst, dem eine ID zuordnest und den Inhalt dann mit
document.getElementById(ID).innerHTML = \"neuer Text\";
einen neuen Text reinstellst.
Mit PHP könntest du auch die Eingaben prüfen, allerdings erst, wenn sie schon abgeschickt worden sind, und das willst du ja anscheinend nicht !
Allerdings ist es _NICHT_ sicher, wenn du die Eingaben nur per JS filterst, denn es ist möglich POST, und noch viel einfacher GET - Daten zu modifizieren, und dann hat JS keinen Zugriff mehr drauf. (Stichpunkt : Live HTTP headers, vll. sagt das dem einen oder anderen ja was :) )
Schau dir das einfach mal an :
<head>
<script>
function check() {
if (document.formular.eingabeflaeche.value == \"NEIN\") {
document.getElementById(\"a\").innerHTML=\"Kleiner Fehler unterlaufen !\";
} else {document.getElementById(\"a\").innerHTML=\"\"; }
}
</script>
</head>
<body>
<form name=\"formular\">
<input type=\"text\" name=\"eingabeflaeche\" onkeyup=\"check();\" />
</form>
<div id=\"a\"></div>
</body>
Das musst du natürlich noch etwas ändern, ist nur bein Beispiel. Wenn du Namen überprüfst, könntest du z.B. prüfen, ob ein Leerzeichen enthalten ist (Vor <-> Nachname).
Hoffen geholfen zu haben, mfg dapizzafressa
PS: Ich würde trotzdem noch mit PHP ausfiltern, wie schon gesagt ! -
Vielen Dank für deine Antwort, werde mal versuchen das einzubauen.
Noch eine letzte Frage, die Smeilies in dem Code sollten Punktstrich und danach ohne abstand eine ) darstellen oder?
Beitrag geändert: 16.12.2007 16:07:37 von meron -
Vielen Dank für deine Antwort, werde mal versuchen das einzubauen.
Noch eine letzte Frage, die Smeilies in dem Code sollten Punktstrich und danach ohne abstand eine ) darstellen oder?
Beitrag geändert: 16.12.2007 16:07:37 von meron
Zitierst du seinen Beitrag einfach, dann siehst du was er eigenlich geschreiben hat. -
Zitierst du seinen Beitrag einfach, dann siehst du was er eigenlich geschreiben hat.
Habs gemerkt ja danke! -
Jetzt dränt sich in mir noch ne Frage auf:
Ich möchte gerne, das durch das eingeben \"ungültiger\" Daten ein Link freigeschaltet werden kann. wenn ich aber als aussgabe text:
eingebe, wills nicht mehr funktionieren.<a href=\"...\">Link Name</a>
Sprich: der Aussage Text kommt nicht mehr!
Was mache ich falsch?
Beitrag geändert: 22.12.2007 15:19:20 von meron -
Was genau dein Problem ist kann ich dir nicht sagen, aber ich vermute, dass du einen Konflikt mit den Anführungzeichen bekommst.
Wenn du schreibst:
document.getElementById(\"a\").innerHTML=\"Kleiner Fehler unterlaufen !\";
Dann steht in den Anführungsstrichen KEIN \" mehr.
Wenn du jetzt allerdings schreibst:
document.getElementById(\"a\").innerHTML=\"<a href=\"..\"></a>\";
dann erhällst du einen Fehler, da der String unterbrochen ist.
Du musst in diesem Fall optimalerweise schreiben :
[Beachte die _dünnen_ Anführungszeichen !]document.getElementById(\"a\").innerHTML=\"<a href=\'..\'></a>\";
mfg dapizzafressa -
ja, das wird wohl der Konflikt mit den Anführungszeichen gewesen sein!
Jetzt funktsioniert es auf jedenfall!
Vielen Dank
Meron -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage