Hallo,
ich habe ein Problem.
Auf einer Webseite habe ich ein Kontaktformular.
Ganz normal wie man's kennt, da ist nichts ausergewöhnliches dran.
Der User füllt die Felder aus -> beim klick auf "Versenden" wird per JavaScript überprüft ob die erforderlichen Felder ausgefüllt sind -> und dann, wenn alles stimmt, wird das Formular per JavaScript an meiner sendmail.php geschickt.
In der sendmail.php lese ich die POST Variablen per $_POST['bla'] aus und sende sie an die Ziel-Email-Adresse (per PHP).
Dann kommt ein "Vielen Dank" und das wars dann.
Funktioniert ja auch alles aber irgendwie doch nicht ;-)
Es ist jetzt schon zum 2ten mal passiert das ein Formular leer per Email geschickt wurde. Das dürfte doch eigentlich nicht sein, denn wenn der User JavaScript deaktiviert hat, kann man das Formular gar nicht abschicken (hab ich schon getestet). Und wenn er JavaScript aktiviert hat, dann wird das Formular niemals leer an meine sendmail.php geschickt. Und die macht ja nicht mehr als die POST Variablen an die Ziel-Email zu senden.
Bei dem Ausnahmefall weis ich leider nichts über dem User. Ich kann das ganze deshalb auch nicht nachvollziehen.
Woran kann das liegen?
POST Variablen die einfach verloren gehen ?
Ich kann's mir einfach nicht erklären.
Textfelder per JavaScript nach leer überprüfen und anschließend wenn erwünscht das Formular per JavaScript versenden kann doch jeder Browser, oder täusch ich mich da?
Kann es sein das ein Browser die überprüfen einfach ignoriert und das Formular auch leer verschickt?
Hier noch die JavaScript funktion mit der ich das Formular prüfe:
-----------------------CODE START------------------------------------
function validate_form() {
validity = true; // assume valid
var varString = "";
if (!check_empty(document.Kontakt.vorname.value))
{ validity = false; varString+="Vorname\n"; }
if (!check_empty(document.Kontakt.nachname.value))
{ validity = false; varString+="Nachname\n"; }
if (!check_empty(document.Kontakt.firma.value))
{ validity = false; varString+="Firma\n"; }
if (!check_empty(document.Kontakt.strasse.value))
{ validity = false; varString+="Straße\n"; }
if (!check_empty(document.Kontakt.plz.value))
{ validity = false; varString+="Plz\n"; }
if (!check_empty(document.Kontakt.ort.value))
{ validity = false; varString+="Ort\n"; }
if (!check_empty(document.Kontakt.land.value))
{ validity = false; varString+="Land\n"; }
if (!check_empty(document.Kontakt.telefon.value))
{ validity = false; varString+="Telefon\n"; }
if (!check_empty(document.Kontakt.fax.value))
{ validity = false; varString+="Fax\n"; }
check = false;
if (document.Kontakt.art[0].checked==true)
{ check=true; }
if (document.Kontakt.art[1].checked==true)
{ check=true; }
if (document.Kontakt.art[2].checked==true)
{ check=true; }
if (check==false)
{ validity = false; varString+="Privat/Kunde\n"; }
if (document.Kontakt.information.value=="Bitte auswählen"){
informationValue="";
}
if (document.Kontakt.information.value!="Bitte auswählen"){
informationValue=document.Kontakt.information.value;
}
if (!check_empty(informationValue))
{ validity = false; varString+="gewünschte Information\n"; }
if (!check_email(document.Kontakt.email.value))
{ validity = false; varString+="Email\n"; }
//if (validity)
//return validity;
if (validity==true){
document.Kontakt.submit();
}
if (varString!=""){
alert('Bitte geben Sie noch folgende \nInformationen an:\n\n'+varString);
}
}
-----------------------CODE ENDE------------------------------------
Hat jemand eine Idee wodurch mein Problem entsteht?
Wäre dankbar für jeden Tip.
Danke.
Gruß
Andreas