Ergebnis 1 bis 5 von 5
  1. #1
    Gloster
    Themenstarter

    Registriert
    07.2009
    Ort
    Nähe Winterthur
    Beiträge
    62

    Kontaktformular: Bestätigungsmail

    Hallo
    Ich habe aus verschiedenen Kontaktformularen das unten stehende "zusammengeschustert". Eigentlich sollte es so sein, dass eine Fehlermeldung erscheint, wenn etwas nicht eingegeben wurde. Nun erscheint jedoch zusätzlich der Vermerk "Ihre Nachricht: Ihre Auswahl: Eine Bestätigungs-eMail von uns ist bereits unterwegs!". Dieser sollte jedoch nur erscheinen, wenn das Mail wirklich verschickt wurde ...
    Was muss ich ändern?
    Danke für eure Hilfe!
    p.

    <html>
    <head>
    <title>Logo-Wettbewerb</title>
    <meta name="author" content="b-projects.de">
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859- 1">
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div align="left">
    <br><br>
    <?php
    include "config.php";

    // wurde auf ABSCHICKEN geklickt?
    if(isset($_POST["submit"]))
    {

    // es wurde kein Name eingetragen
    if(!$_POST["name"] || empty($_POST["name"])) { ?>
    <div align="left"><span class="mail">Sie haben folgende Angabe vergessen einzutragen: Name</span><br>&nbsp;<a href="<?php echo $_SERVER["PHP_SELF"]; ?>" title="zur&uuml;ck">zur&uuml;ck</a></div>
    <?php }

    // es wurde keine E-Mail Adresse eingetragen
    elseif(!$_POST["email"] || empty($_POST["email"])) { ?>
    <div align="left"><span class="mail">Sie haben folgende Angabe vergessen einzutragen: eMail-Adresse</span><br>&nbsp;<a href="<?php echo $_SERVER["PHP_SELF"]; ?>" title="zur&uuml;ck">zur&uuml;ck</a></div>
    <?php }

    // es wurde keine Nachricht eingetragen
    elseif(!$_POST["nachricht"] || empty($_POST["nachricht"])) { ?>
    <div align="left"><span class="mail">Sie haben folgende Angabe vergessen einzutragen: Nachricht</span><br>&nbsp;<a href="<?php echo $_SERVER["PHP_SELF"]; ?>" title="zur&uuml;ck">zur&uuml;ck</a></div>
    <?php }

    // es wurde keine Auswahl angewählt
    elseif(!$_POST["auswahl"] || empty($_POST["auswahl"])) { ?>
    <div align="left"><span class="mail">Sie haben folgende Angabe vergessen einzutragen: Auswahl</span><br>&nbsp;<a href="<?php echo $_SERVER["PHP_SELF"]; ?>" title="zur&uuml;ck">zur&uuml;ck</a></div>
    <?php }

    // ist alles Eingetragen dann
    else
    {


    // Erzeuge den E-Mail Header

    // E-Mail Absender
    $header.="From: \"".$_POST["name"]."\" <".$_POST["email"].">\n";

    // Domain also was in der Mailadresse hinter dem @ steht
    $header.="Organization: ".substr($deinemailadresse,strpos($deinemailadress e,"@"))."\n";
    // Format der Mail
    $header.="Content-Type: text/plain;\n";
    // Name des Mailprogramms, hier die PHP-Version
    $header.="X-Mailer: PHP/".phpversion();

    // Der Betreff
    $betreff = "".$_POST["auswahl"]."\n\n";

    // Die Nachricht
    $nachricht1 = "".$_POST["nachricht"]."\n\n";

    // Die Auswahl
    $auswahl1 = "".$_POST["auswahl"]."\n\n";

    // Mail wird nun verschickt
    mail("\"".$deinname."\" <".$deinemailadresse.">",$betreff,"Nachricht: ".$nachricht1."\nAuswahl: ".$auswahl1."", $header);

    // Betreff der Dankesmail
    $betreff_danke = "Vielen Dank";

    // Text der Dankesmail
    $body_danke = "Hallo ".$_POST["name"].",\n\nDanke f&uuml;r Ihre Nachricht!\n\nIhre Stimme wurde gez&auml;hlt.\n\n\nMit freundlichen Gruessen\n\n".$deinname."\n\n--\n\nIhre Nachricht:\n\n".$nachricht1."\n--\nIhre Auswahl:\n\n".$auswahl1."";

    // Header f¸r die Dankesmail, analog zu oben
    $header_danke.="\"".$deinname."\" <".$deinemailadresse.">";
    $header_danke.="Organization: ".substr($deinemailadresse,strpos($deinemailadress e,"@"))."\n";
    $header_danke.="Content-Type: text/plain;\n";
    $header_danke.="X-Mailer: PHP/".phpversion();

    // Senden der Dankmail
    mail("\"".$_POST["name"]."\" <".$_POST["email"].">",$betreff_danke,$body_danke,$header_danke);
    ?>

    <table border="0"><tr><td colspan="2" align="left">
    <span class="mail">Vielen Dank f&uuml;r folgende Nachricht</span></td></tr>
    <tr><td colspan="2" align="center">&nbsp;</td></tr>
    <tr><td><span class="mail">Ihr Name:</span></td><td><?php echo $_POST["name"]; ?></td></tr>
    <tr><td><span class="mail">Ihre eMail-Adresse:</span></td><td><a href="mailto:<?php echo $_POST["email"]; ?>"><?php echo $_POST["email"]; ?></a></td></tr>

    <?php } ?>
    <tr><td valign="top"><span class="mail">Ihre Nachricht:</b></td><td><?php echo nl2br($_POST["nachricht"]); ?></td></tr><tr>
    <tr><td valign="top"><span class="mail">Ihre Auswahl:</b></td><td><?php echo nl2br($_POST["auswahl"]); ?></td></tr><tr>
    <tr><td colspan="2" align="center">&nbsp;</td></tr>
    <td colspan="2" align="center"><span class="mail">Eine Best&auml;tigungs-eMail von uns ist bereits unterwegs!</span></td></tr></table>
    <?php
    } // end alles eingetragen

    // wenn nicht gesendet, Mailformular ausgeben
    else
    {
    ?>
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <table border="0" cellspacing="0" cellpadding="5">
    <tr>
    <td>Ihr Name:</td>
    <td><input type="text" name="name" class="formular"></td>
    </tr>
    <tr>
    <td>Betreff:</td>
    <td><input type="text" name="betreff" class="formular"></td>
    </tr>
    <tr>
    <td>Ihre eMail-Adresse</td>
    <td><input type="text" name="email" class="formular"></td>
    </tr>

    <tr>
    <td valign="top">Ihre Nachricht:</td>
    <td><textarea name="nachricht" cols="50" rows="5" class="feld"></textarea></td>
    </tr>
    <tr>
    <td>Auswahl: </td>
    <td>Logo 1:<input type="radio" value="Logo 1" name="auswahl"><br />
    Logo 2:<input type="radio" value="Logo 2" name="auswahl"><br />
    Logo 3:<input type="radio" value="Logo 3" name="auswahl"><br />
    Logo 4:<input type="radio" value="Logo 4" name="auswahl"><br />
    Logo 5:<input type="radio" value="Logo 5" name="auswahl"><br />
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td align="left"><input type="reset" value="zur¸cksetzen" class="formular">&nbsp;<input type="submit" value="abschicken" name="submit" class="formular"></td>
    </tr>
    </table>
    </form>
    <!-- end nicht gesendet -->
    <?php } ?>
    </div>
    </body>


    </html>

  2. #2
    Moderator Betriebssysteme Avatar von ImperatoR
    Registriert
    12.2006
    Ort
    BaWü
    Alter
    24
    Beiträge
    4.794
    Poste das mal mit dem CODE-Tag, so kann man das ja kaum lesen.
    { 4pple.de/, Pro sichere E-Mail/, 500px/, 15" MacBookPro6,2 Antiglare }

  3. #3
    Gala
    Registriert
    04.2010
    Ort
    Mannheim
    Beiträge
    52
    Dem schliesse ich mich an.

    Wenn ich das richtig erkannt habe, dann ist deine Abfrage oben "if(isset($_POST["submit"])) ... Abfragen über die Felder und eingaben" else "versand von email".

    D.h die eMail wird abgeschickt wenn der Button nicht gesetzt ist und ignoriert damit die ganzen abfragen. Das wundert mich. Kann aber auch sein, dass ich eine Klammer übersehen habe, da der Code nicht wirklich übersichtlich ist.

  4. #4
    Golden Noble Avatar von Bananenbieger
    Registriert
    08.2005
    Ort
    In der Cloud
    Beiträge
    21.434
    Bei dem Code wird einem ja übelst...

    Vor "// ist alles Eingetragen dann" fehlt noch ein }

    Für die Zukunft: Besser Code von Darstellung trennen, mit Einrückung arbeiten und auf Inline-PHP verzichten. Auch Frameworks bieten sich an (z.B. flourishlib), um generische Probleme einfach zu lösen.
    Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
    Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
    Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.

  5. #5
    drp
    drp ist offline
    Ontario Avatar von drp
    Registriert
    04.2011
    Beiträge
    342
    Das ganze könntest du so lösen:
    Code:
    if(mail(...)) {
    // Erfolg
    }
    else {
    // Fehler
    }
    (Wenn die E-Mail versendet wurde wird das, wo jetzt "// Erfolg" steht ausgeführt und sonst den Else-bereich...

    Hoffe ich konnte weiterhelfen..
    Viele Grüße von DRP - Homepage
     MacBook Air 11,6" |  iPhone 3GS 8GB |  iPad 2 16GB weiß Wi-Fi |  Magic Mouse | PC

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •