flo: Kontaktformular & Mailüberprüfung

Hallo,

wie kann ich gegebenerfalls darauf hinweisen, dass eine email notwendig ist und nicht angegeben wurde? Ich hatte schon kurz
http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm
ausprobiert. Irgendwie hatte es aber nicht gefunzt. Wie müsste das entsprechende Javascript aussehen?
Dass ich davon keine Ahnung habe ist ja wohl klar...
Danke schonmal im Voraus; gerne auch für einen guten Opensource formmailer mit diesen Funktionen.

<form class="text" method="post" action="descript/formmailer.php">
Name: <input type="text" name="name" size="67"><br />
E-Mail: <input type="text" name="email" size="67"><br />
Nachricht:<br />
<textarea name="nachricht" cols="50" rows="10"></textarea><br>
<input type="submit">
</form>

Sofern die .php für so etwas relevant ist...

<?php
$admin = "mustermann@test.de";
$subject = "Testnachricht";
$message = "Nachricht fuer $admin von $email:\n\n";

while(list($name,$value)=each($HTTP_POST_VARS)) {
$message.="$name: $value\n";
}

mail($admin,$subject,$message,"From: $email");

?>
<?php include 'danke.php';
?>

  1. Was willst du genau haben ich verstehts net was du meinst.

    <html>
    <head>
    <title>Formulareingaben &uuml;berpr&uuml;fen</title>
    <script type="text/javascript">
    function chkFormular () {
      if (document.Formular.User.value == "") {
        alert("Bitte Ihren Namen eingeben!");
        document.Formular.User.focus();
        return false;
      }
      if (document.Formular.Ort.value == "") {
        alert("Bitte Ihren Wohnort eingeben!");
        document.Formular.Ort.focus();
        return false;
      }
      if (document.Formular.Mail.value == "") {
        alert("Bitte Ihre E-Mail-Adresse eingeben!");
        document.Formular.Mail.focus();
        return false;
      }
      if (document.Formular.Mail.value.indexOf("@") == -1) {
        alert("Keine E-Mail-Adresse!");
        document.Formular.Mail.focus();
        return false;
      }
      if (document.Formular.Alter.value == "") {
        alert("Bitte Ihr Alter eingeben!");
        document.Formular.Alter.focus();
        return false;
      }
      var chkZ = 1;
      for (i = 0; i < document.Formular.Alter.value.length; ++i)
        if (document.Formular.Alter.value.charAt(i) < "0" ||
            document.Formular.Alter.value.charAt(i) > "9")
          chkZ = -1;
      if (chkZ == -1) {
        alert("Altersangabe keine Zahl!");
        document.Formular.Alter.focus();
        return false;
      }
    }
    </script>
    </head>
    <body>

    <h1>Formular</h1>

    <form name="Formular" action="http://de.selfhtml.org/cgi-bin/formview.pl"
      method="post" onsubmit="return chkFormular()">
    <pre>
    Name:     <input type="text" size="40" name="User">
    Wohnort:  <input type="text" size="40" name="Ort">
    E-Mail:   <input type="text" size="40" name="Mail">
    Alter:    <input type="text" size="40" name="Alter">
    Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">

    Zum Absenden muss eine Internet-Verbindung bestehen!
    </pre>
    </form>

    </body>
    </html>

    des funktioniert bei mir ohne probleme

    1. Ok, ich habe es folgendermaßen gelöst, wahrscheinlich hatte ich auch einfach nur irgendeine angabe übersehen (allerdings überprüfe ich nur email + nachricht):

      <script languange="Javascript">
      <!--
      function anfragen_kontrolle(){
      if (document.anfrage.email.value == ""){
        alert("Bitte geben Sie Ihre E-Mail ein!")
        document.eingabe.email.focus();
        return false;
       }

      else if (document.anfrage.nachricht.value == ""){
        alert("Bitte geben Sie eine Nachricht ein!")
        document.anfrage.nachricht.focus();
        return false;
       }

      else if (document.anfrage.email.value.indexOf ('@',0) == -1 || document.eingabe.email.value.indexOf ('.',0) == -1){
        alert("Bitte geben Sie eine gültige E-Mail ein; d.h. z.B. mustermann@test.de")
        document.anfrage.email.select();
        document.anfrage.email.focus();
        return false;
       }
       else
       return true;
      }
      -->
      </SCRIPT>

      <form name="anfrage" class="text" method="post" action="descript/formmailer.php" onSubmit="return anfragen_kontrolle(this.form)">
      Vorname: <input type="text" name="vorname" size="67"><br />
      Nachname: <input type="text" name="nachname" size="67"><br />
      E-Mail*: <input type="text" name="email" size="67"><br />
      Nachricht*:<br />
      <textarea name="nachricht" cols="50" rows="10"></textarea><br>
      <input type="submit"> <input type="reset">
      </form>

      Was mich interessieren würde, ist, inwieweit man das nicht mit php realisieren könnte (wenn Javascript etwa deaktiviert ist) und welche Schutzmaßnahmen man zusätzlich einbauen könnte etwa Zeitintervalle und Anzahl an Anfragen, damit man nicht selbst zugespamt wird.

      Schöne Grüße