JavaScript Kontaktformular auf space prüfen

Cool Master

Fleet Admiral
Registriert
Dez. 2005
Beiträge
37.298
Moin,

also wir haben ein kleines problem mit einem Kontak Forumlar und zwar haben wir 3 Pflichtfelder: Name, Vorname und Tel Nr. So nun sind aber einige Bots so schlau und schicken einfach ein leeres Formular ab da sie leertasten eintragen.

Aktuell sieht der Code so aus:

Code:
<script type="text/javascript">
function chkFormular () {
  if (document.nlform.name.value == "") {
    alert("Geben Sie bitte Ihren Namen ein.");
    document.nlform.name.focus();
    return false;
  }
  if (document.nlform.vorname.value == "") {
    alert("Geben Sie bitte Ihren Vornamen ein.");
    document.nlform.vorname.focus();
    return false;
  }
  if (document.nlform.telefon.value == "") {
    alert("Geben Sie bitte Ihre Telefonnummer an.");
    document.nlform.telefon.focus();
    return false;
  }
}
</script>

So wie kann ich 1. auf Leerzeichen Prüfen und wenn das der Fall ist auch ein Popup zu erzeugen von wegen Illegale bzw. nicht erlaube Chars erkannt. Und 2. möchte ich noch ein hiden element anlegen und sobald ein Bot da was eintragt auch per JS ein Popup erzeugen von wegen "Spam erkannt, keine weiterleitung möglich".

Grüße,
 
Naja also Leerzeichen werden ja auch bei normalen Einträgen vorhanden sein, daher reicht es wohl kaum einfach auf Leerzeichen zu prüfen. Du könntest aber z.B. Leerzeichen-Ketten prüfen, z.B. "If %var%.contains("(5leerzeichen)") then..." Eine Kombination aus 5 Leerzeichen am Stück halte ich für unwahrscheinlich. Sauber ist das aber auch net unbedingt.

Du könntest auch ein Array mit den Zeichen befüllen, von denen mindestens 1 Zeichen mindestens 1 Mal vorkommen muss. Also z.B. [A-Z] und eins dieser Zeichen muss schonmal vorkommen und darauf dann halt prüfen.
 
Zuletzt bearbeitet:
Eine Prüfung auf JavaScript-Ebene wegen Bots ist eigentlich hirnlos..

JavaScript ist gut wenn es um Komfort-Dinge geht - das Formular muss zur Überprüfung nicht erst an den Server geschickt werden. Aber es sollte nie die letzte Instanz in einem Sicherheitssystem sein...
 
Hm, einfach vor der überprüfung alle führenden und folgenden Leerzeichen entfernen? Wenn danach immernoch etwas vorhanden ist, dann kann es ja nur Text sein. Wären es nur Leerzeichen, dann würde das ganze wieder auf "" reduziert enden.

if (trim(document.nlform.name.value) == "") {

Ich weiß nicht, ob es bereits ein Kommando dafür gibt. "trim" wäre jedenfalls meine Vermutung... bzw. der Begriff, nach dem ich nach einem solchen Befehl suchen würde.
 
Hmm und warum das? Gehen wir mal von der Leertaste aus sobald da im Vor- oder Nachname eins drinne ist, würde ja ein pop up kommen von wegen: "Spam erkannt Überprüfen sie Feld Name". So ohne behebung des Fehlers, würde das Formular ja gar nicht weiter geschickt werden oder?
 
Oh, JavaScript kann ja nicht einfach vom Besucher deaktiviert (oder gar ignoriert) werden....
 
Stimmt da habe ich gar nicht dran gedacht :X
 
Also wie gesagt, "Komfort-Überprüfungen" in JS sind schon sinnvoll, aber gegen Bots denke ich werden sie nicht unbedingt ans Ziel führen.
 
Zurück
Oben