Problem mit PHP-Kontaktform

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit PHP-Kontaktform

    Hi,

    ich habe da ein Problem mit meinem Kontaktformular.
    Das Formular ist soweit recht einfach aufgebaut, enthält einige Pflichtfelder, wobei die Fehlermeldung immer direkt über dem Eingabefeld angezeigt wird.

    Zu sehen hier: Klickst du hier

    Soweit ist ja auch alle OK. mein Wunsch ist es aber nun nach erfolgreichem Ausfüllen des Formulars den User auf eine Antwortseite zu schicken.

    Momentan wird auch die "Erfolgsmeldung" auf der kontakt.php angezeigt und drüber steht dann natürlich immer noch der Satz:
    "Nutzen Sie unser Kontaktformular:
    (Die mit * markierten Zellen müssen ausgefüllt werden)"

    Bin mit PHP noch am Anfang und komm leider nicht weiter.
    Vielleicht weiß hier jemand Rat?

    Hier der Quellcode:

    <div align="left">
    <br><br>
    <table width="785" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
    <tr>
    <td valign="top" bgcolor="#FFFFFF"><img src="../gfx/abstand.gif" width="1" height="1" border="0"></td>
    <td valign="top" bgcolor="#FFFFFF">
    <form action="<?php echo $PHP_SELF; ?>" method="POST">
    <table width="650" border="0" cellspacing="0" cellpadding="2">
    <tr>
    <td valign="top" rowspan="20"><img src="../gfx/abstand.gif" width="20" height="1" border="0"></td>
    <td valign="top" valign="left" colspan="2"><br>
    <p><strong>Wir helfen Ihnen bei allen Fragen schnell und kompetent.</strong></p>
    <p>Nutzen Sie unser Kontaktformular:<br>
    (Die mit <font color="Red">*</font> markierten Zellen müssen ausgefüllt werden)</p>


    PHP-Code:
    <?php
    if(isset($_POST['senden']))
    {
    if(empty(
    $_POST['name']))
    {
    $fehler_name "Bitte geben Sie Ihren Namen ein!<br>";
    $fehler=1;
    }
    if(empty(
    $_POST['phone']))
    {
    $fehler_phone "Bitte geben Sie Ihre Telefonnummer an!<br>";
    $fehler=1;
    }
    if(empty(
    $_POST['mail']))
    {
    $fehler_mail "Bitte geben Sie Ihre E-Mail-Adresse an!<br>";
    $fehler=1;
    }
    if(empty(
    $_POST['betreff']))
    {
    $fehler_betreff "Bitte geben Sie eine Betreff ein!<br>";
    $fehler=1;
    }
    if(empty(
    $_POST['Textfeld']))
    {
    $fehler_text "Bitte auch einen Text eingeben!<br>";
    $fehler=1;
    }
    }
    if(isset(
    $_POST['senden']) && !isset($fehler)){
    $email_to "mail@test.de";
    $header="From:".$_POST['name']."<"$_POST['mail'] .">\n";
    $kommentar='Telefon: '.$_POST['phone']."\n";
    $kommentar.='Telefax: '.$_POST['fax']."\n\n";
    $kommentar.='Nachricht: '.$_POST['Textfeld'];
    mail($email_to $_POST['betreff'] , $kommentar $header) or die ("Konnte eMail nicht versenden!");
    ?>
    <p>

    PHP-Code:
    <?php
    echo "<strong>Vielen Dank "$_POST['name'] .",</strong><br><br>";
    echo 
    "Ihre Email mit dem Betreff \""$_POST['betreff'] ."\" wurde erfolgreich versendet.<br>";
    echo 
    "Wir werden uns so schnell wie möglich darum kümmern.";
    }
    else
    {
    ?>

    </p></td>
    <td valign="top" colspan="2">&nbsp;</td></tr>

    <tr>
    <td width="100" align="right" valign="middle">&nbsp;</td>
    <td><span class="error"><br><?=$fehler_name ?></span></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td>
    <td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" <?php if(isset($_POST['name'])) { echo "value =\"".$_POST['name']."\""; } ?>></td>
    <td>&nbsp;</td>
    </tr>

    <tr>
    <td width="100" align="right" valign="middle">&nbsp;</td>
    <td><span class="error"><br><?=$fehler_phone ?></span></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td>
    <td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30"<?php if(isset($_POST['phone'])) { echo "value =\"".$_POST['phone']."\""; } ?>></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">&nbsp;</td>
    <td><span class="error"><br><?=$fehler_fax ?></span></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">Fax: </td>
    <td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30"<?php if(isset($_POST['fax'])) { echo "value =\"".$_POST['fax']."\""; } ?>></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">&nbsp;</td>
    <td><span class="error"><br><?=$fehler_mail ?></span></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td>
    <td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30"<?php if(isset($_POST['mail'])) { echo "value =\"".$_POST['mail']."\""; } ?>></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">&nbsp;</td>
    <td><span class="error"><br><?=$fehler_betreff ?></span></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td>
    <td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" <?php if(isset($_POST['betreff'])) { echo "value =\"".$_POST['betreff']."\""; } ?>></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td>
    <td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text"><?php if(isset($_POST['Textfeld'])) { echo $_POST['Textfeld']; } ?></textarea></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td colspan="3">&nbsp;</td></tr>
    <tr>
    <td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden">&nbsp;&nbsp;<input type="reset" value="Zurücksetzen"></td>
    </tr>
    <tr>
    <td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td>
    </tr>
    </table>
    <?
    }
    ?>
    </td>
    </tr>
    </table>

    </div>


    Vielen Dank für Eure Hilfe


    Gruß
    Torsten
    Zuletzt geändert von tams; 29.06.2004, 10:26.

  • #2
    bau mal PHP-Tags ein, ist ja schrecklich so.
    Anwälte in Vulkane werfen -
    Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

    Kommentar


    • #3
      sorry, mach ich sofort...

      Kommentar


      • #4
        Momentan wird auch die "Erfolgsmeldung" auf der kontakt.php angezeigt und drüber steht dann natürlich immer noch der Satz:
        "Nutzen Sie unser Kontaktformular:
        (Die mit * markierten Zellen müssen ausgefüllt werden)"
        du prüft das Formular ja doch und sendest ein eMail nur, wenn alles OK ist, dann kannst du auch per if-Anweisung diese Zeilen NUR ausgeben, wenn das Formular NICHT i.O. ist.

        BTW: bitte das nächste Mal nicht alles was du hast rein hauen, das schreckt ab, und man wird deine Frage ignorieren. Benutze bitte auch die PHP-Tags des Forum für Code.

        Kommentar


        • #5
          Sorry wegen des ganzen Codes den ich hier so reingehauen habe, kommt nicht wieder vor.

          Danke für deine schnelle Antwort.
          Hmmm, Ok ich prüfe die gemachten Eingaben, wenn was fehlt, kommt die Fehlermeldung, wenn nicht die Erfolgsmeldung.

          Vielleicht habe ich mich missverständlich ausgedrückt.
          So wie das Formular jetzt funktioniert ist es ja soweit auch OK, nur mir geht's um folgendes:

          Die Erfolgsmeldung wird ja auch in der kontakt.php angezeigt.
          Leider steht aber drüber dann immer noch dieser blöde Satz:
          "Nutzen Sie unser Kontaktformular:
          (Die mit * markierten Zellen müssen ausgefüllt werden)"
          Das ist dann natürlich unnötig. Ich dachte, ich könnte das so lösen, dass mit dem Aufruf einer neuen Antwortseite dieses Problem gelöst ist.

          Leider verstehe ich Deine Antwort noch nicht so richtig.
          Müsste ich für eine eigene Antwortseite das Sccipt komplett neu stricken oder kann man es modifizieren?

          Danke für Deine Hilfe.


          Torsten

          Kommentar


          • #6
            Original geschrieben von tams
            Leider steht aber drüber dann immer noch dieser blöde Satz:
            "Nutzen Sie unser Kontaktformular:
            (Die mit * markierten Zellen müssen ausgefüllt werden)"
            Das ist dann natürlich unnötig.
            das problem sollte sich doch mit sehr wenig nachdenken schnell lösen lassen.


            wie fragst du für die verarbeitung ab, ob das formular abgeschickt wurde?
            mit if(isset($_POST['senden']))
            wenn du diese bedingung jetzt mal negierst, hättest du den fall, dass das formular nicht abgeschickt, sondern die seite ganz normal aufgerufen wurde. also könntest du diesen text ja nur in diesem speziellen fall ausgeben, hm ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ich verstehe schon, was du meinst, nur ich habe keine Lust deinen kilometerlangen Code zu lesen, um die Stelle zu markieren.

              OK, du gibst diese Zeile irgendwo aus, also mach eine If-Anweisung drumrum mit der Bedingung etwa:
              PHP-Code:
              if (Fehler oder SendenNichtBetätigt) {
              // ausgabe: "Nutzen Sie unser Kontaktformular:
              // (Die mit * markierten Zellen müssen ausgefüllt werden)"

              alles klar?

              Kommentar


              • #8
                ok hab's verstanden. ich werd gleich mal mit meinem anfängerkenntnissen versuchen das einzubinden.

                heissen dank dir.

                Kommentar


                • #9
                  Hmmm, ich krieg's einfach nicht zum Laufen.
                  Entweder mach ich einen grundsätzlichen Denkfehler oder seh den Wald vor lauter Bäumen nicht.

                  Werd's aber weiterversuchen, heissen Dank nochmals.


                  Torsten

                  Kommentar


                  • #10
                    PHP-Code:
                    //der Code sollte erst nach den ganzen if´s kommen

                    <div align="left">
                    <br><br>
                    <table width="785" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
                    <tr>
                    <td valign="top" bgcolor="#FFFFFF"><img src="../gfx/abstand.gif" width="1" height="1" border="0"></td>
                    <td valign="top" bgcolor="#FFFFFF">
                    <form action="<?php echo $PHP_SELF?>" method="POST">
                    <table width="650" border="0" cellspacing="0" cellpadding="2">
                    <tr>
                    <td valign="top" rowspan="20"><img src="../gfx/abstand.gif" width="20" height="1" border="0"></td>
                    <td valign="top" valign="left" colspan="2"><br>
                    <p><strong>Wir helfen Ihnen bei allen Fragen schnell und kompetent.</strong></p>
                    <p>Nutzen Sie unser Kontaktformular:<br>
                    (Die mit <font color="Red">*</font> markierten Zellen müssen ausgefüllt werden)</p>
                    PHP-Code:
                    <p>Nutzen Sie unser Kontaktformular:<br>
                    (Die 
                    mit <font color="Red">*</fontmarkierten Zellen müssen ausgefüllt werden)</p>
                    //dann das mit folgendem Code austauschen
                    <p>Nutzen Sie unser Kontaktformular:<br>
                    if(!empty(
                    $fehler)){

                    (Die 
                    mit <font color="Red">*</fontmarkierten Zellen müssen ausgefüllt werden)

                    }

                    </
                    p
                    PS: bei nur Copy/Paste wirst du ein Parse Error erhalten.
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar


                    • #11
                      Supii, klappt nun prima!


                      Heissen Dank Dir


                      T.

                      Kommentar

                      Lädt...
                      X