Mike: Kontaktform Probleme

Hallo Leutchen,

ich hab ein Kontaktformualr was aus zwei bzw. drei (mit JS) Teilen besteht. Im ersten Teil (HTML) werden die Felder ausgefüllt.

Quelltext (HTML Date)i:

<form name="myform" action="clox_mailer.php" method="post" onSubmit="return Checkform()">
                <p class="text_mittel_blau">Vor- und Nachname: <br>
                  <input name="name" class="i1" type="text" id="name" size="80" maxlength="80">
                </p>
                <p> Strasse- und Hausnummer:<br>
                  <input name="strasse" class="i1" type="text" id="strasse" size="80" maxlength="80">
                </p>
                PLZ und Ort:<br>
                <input name="ort" class="i1" type="text" id="ort" size="80" maxlength="80">
                <p>Telefon-Nr. (Optional):<br>
                  <input name="telefon" class="i1" type="text" id="telefon" size="60" maxlength="60">
                  <font color="#ECF0F4"> _</font><span class="text_dunkel"> </span>
                </p>
                <p> eMail-Adresse:<br>
                  <input name="email" class="i1" type="text" id="email" size="60" maxlength="60">
                </p>
                <p>Nachricht:<br>
                  <textarea name="text" cols="78" rows="5" id="textarea"></textarea>
                </p>
                <p>
                  <input name="submit" type="submit" style="BACKGROUND-COLOR: #ECF0F4; color: #313842; border-bottom-color: #CCCCCC; border-top-color: #CCCCCC; border-left-color: #CCCCCC; border-right-color: #CCCCCC" value="Abschicken" >
                  <input name="Button" type="Button" style="BACKGROUND-COLOR: #ECF0F4; color: #313842; border-bottom-color: #CCCCCC; border-top-color: #CCCCCC; border-left-color: #CCCCCC; border-right-color: #CCCCCC" onClick="CheckReset(this.form)" value="Zur&uuml;cksetzen">
                </p>
                <p></p>
              </form>

Nach dem der Button Abschicken betätigt wird, wird das ganze per JS geprüft und dann später an die PHP Datei übergeben per POST.

Hier Quelltext JS:

function Checkform()
  {
     var check = true;
     if(document.myform.name.value == '')
     {
     check = false;
     alert ('Bitte geben Sie Ihren Namen ein !');
     }
     else if (document.myform.strasse.value == '')
     {
     check = false;
     alert ('Bitte geben Sie Ihre Strasse und Hausnummer ein !');
     }
     else if (document.myform.ort.value == '')
     {
     check = false;
     alert ('Bitte geben Sie Ihren Wohnort ein !');
     }
     else if (document.myform.email.value == '')
     {
     check = false;
     alert ('Bitte geben Sie Ihre E-Mail Adresse ein !');
     }
     else if (!TesteObEmail(form.email.value))
     {
     check = false;
     alert ('Die E-Mail Adresse ist nicht korrekt !');
     }
     return check;
  }

So hier nun der Quelltext der PHP Datei die die EMail gerneriert:

<?php
$MailTo="kontakt@adresse.de";

$inhalt = "Name:               $name\nStrasse:            $strasse\nOrt:                $ort\nTelefonNr.:         $telefon\nE-Mail:             $email\n\nNachricht:\n$text\n";

mail($MailTo, "Mehr Infos", $inhalt, "From: $email");

Autoresponder   #############################################################

$filename = "answer.txt";
       $fd = fopen( $filename, "r" );
       $contents = fread( $fd, filesize( $filename ) );
       fclose( $fd );
       mail( "$email", "Danke für Ihre eMail", "$contents\n\n",
             "From:kontakt@adresse.de\n" );

?>

Das Problem ist jetzt folgendes wenn die PHP Datei aufgerufen wird, wird ja immer eine EMail generiert, egal wer die Datei aufruft. Deswegen will ich den PHP Teil in eine IF Funktion setzen und nur wenn ein bestimmter Wert von der HTML Datei übergeben wurde soll die EMail generiert werden.

Dieser Wert soll praktisch dann mit übergeben werden wenn alle Felder bzw. die Pflichtfelder mit JS geprüft werden ordnungsgemäß ausgefüllt wurden.

Ich weiss man hätte das ganze auch komplett in PHP wesentlich einfacher gestalten können, doch dies ist nur ein Beispiel das richtige besteht aus vielen Abfragen mit Radiobuttons etc. Deswegen steht dieser Zeit/Nutzenwert in keinem Verhältnis.

Vielleicht kann mir jemand helfen, das wäre Klasse !!!

Danke

Mike

  1. hallo Mike,

    Das Problem ist jetzt folgendes wenn die PHP Datei aufgerufen wird, wird ja immer eine EMail generiert, egal wer die Datei aufruft. Deswegen will ich den PHP Teil in eine IF Funktion setzen

    Gib den Eingabefeldern Namen in der Art
      <input type="text" name="name" size="50">
    und prüfe nach, ob sie ausgefüllt sind:
      if ($_POST) {
      $name = $_POST['name'];
      if ($name) {mail();}
      }

    Grüße aus Berlin

    Christoph S.

    1. Du meinst du in der PHP-Datei den ganzen Teil der die Mail generiert, so in eine IF. Weil die Felder haben doch schon Namen bzw. Variablen. Ich müsste also praktisch nur IF feld ist nicht leer, und Feld zwei ist nicht leer, etc. dann sende die Mail.

      Hab ich das richtig verstanden.

      Gib den Eingabefeldern Namen in der Art
        <input type="text" name="name" size="50">
      und prüfe nach, ob sie ausgefüllt sind:
        if ($_POST) {
        $name = $_POST['name'];
        if ($name) {mail();}
        }

      Grüße aus Berlin

      Christoph S.

  2. Hi Mike,

    Das Problem ist jetzt folgendes wenn die PHP Datei aufgerufen wird, wird ja immer eine EMail generiert, egal wer die Datei aufruft. Deswegen will ich den PHP Teil in eine IF Funktion setzen und nur wenn ein bestimmter Wert von der HTML Datei übergeben wurde soll die EMail generiert werden.

    Habe ein Hidden-Feld in deinem Formular mit dem Wert xyz und ändere selbigen vorm Abschicken durch javascript.
    http://de.selfhtml.org/javascript/objekte/elements.htm#value

    Sinnvoll fände ich allerdings auch eine Prüfung durch PHP von vornherein.

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
    1. hallo romy,

      Habe ein Hidden-Feld in deinem Formular mit dem Wert xyz und ändere selbigen vorm Abschicken durch javascript.
      http://de.selfhtml.org/javascript/objekte/elements.htm#value

      Das macht wegen seiner Angabe

      <form name="myform" action="clox_mailer.php" method="post" onSubmit="return Checkform()">

      wenig Sinn und behebt das "Problem" nicht.

      Sinnvoll fände ich allerdings auch eine Prüfung durch PHP von vornherein.

      ACK, das ist die sinnvollste Entscheidung.

      Was hast du mit dem armen Plüschtier in deiner Signatur angestellt?

      Grüße aus Berlin

      Christoph S.

      1. Hi Christoph,

        Das macht wegen seiner Angabe

        <form name="myform" action="clox_mailer.php" method="post" onSubmit="return Checkform()">
        wenig Sinn und behebt das "Problem" nicht.

        Hilfst du mir mit dem warum?

        Was hast du mit dem armen Plüschtier in deiner Signatur angestellt?

        das hing beim letzten Selftreffen rum und Elke hat es glücklicherweise aufgenommen. Ich finde das witzig.

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
        1. hallo romy,

          Das macht wegen seiner Angabe

          <form name="myform" action="clox_mailer.php" method="post" onSubmit="return Checkform()">
          wenig Sinn und behebt das "Problem" nicht.
          Hilfst du mir mit dem warum?

          Mit dem Abschicken wird das PHP-Script angesprochen und schickt eine mail ab, unabhängig davon, ob nun die Eintragungen überprüft wurden oder nicht.

          Grüße aus Berlin

          Christoph S.

          1. Hi Christoph,

            Mit dem Abschicken wird das PHP-Script angesprochen und schickt eine mail ab, unabhängig davon, ob nun die Eintragungen überprüft wurden oder nicht.

            Ja, okay, ich habe die Ursprungsfrage schon nicht verstanden, entschuldige. Er hat die Javascriptfunktion, bloss die wird gar nicht aufgerufen, richtig?
            Also wäre die Javascriptlösung, dass in der action-anweisung des Formulars das Javascript steht und dieses wiederum weiterleitet an die PHP-Seite bei erfolgtem Prüfen aller Einträge. Oder Action weg und nur onClick, ich weiß es gar nicht mehr, aber ich glaube, wenn der UP immernoch Javascript will, wird er jetzt fündig oder?

            ciao
            romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
            1. hallo romy,

              Er hat die Javascriptfunktion, bloss die wird gar nicht aufgerufen, richtig?

              Nein. Die wird schon aufgerufen, bloß nutzt sie nix.

              Also wäre die Javascriptlösung, dass in der action-anweisung des Formulars das Javascript steht und dieses wiederum weiterleitet an die PHP-Seite bei erfolgtem Prüfen aller Einträge. Oder Action weg und nur onClick

              Ja, irgendwie sowas wäre möglich. Es reicht aber vollends, aich das SELFHTML-Beispiel richtig anzuschauen.

              Grüße aus Berlin

              Christoph S.

      2. Hallo Christoph,

        Was hast du mit dem armen Plüschtier in deiner Signatur angestellt?

        Schade, dass du beim Self-Treffen nicht dabei warst. Dann hättest du das Tierchen in natura sehen können. Nein, Romy war's nicht, das arme Vieh sah schon so mitgenommen aus, als wir ankamen! ;-)

        Schönen Abend noch,

        Martin