1.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Servus Miteinander,

bin grad ziemlich am verzweifeln, als php neuling habe ich mich daran gemacht ein php kontaktformular für eine Homepage zu entwerfen. Habe auch schon ein paar tutorials und skriptvorschläge gefunden und mich dann für einen entschieden, den ich auch schon etwas angepasst habe, nur leider funktioniert die If-Abfrage nicht richtig: Es werden immer alles an Texten und Tabellen gezeigt obwohl die Seite eben erst geladen wurde und der abschicken Button (über den 'submit' gesetzt wird) noch gar nicht genutzt wurde.
Hier ist der Code, hoffe es findet sich jemand der mit weiterhelfen kann:
<div id="Layer30">
<?php
include "config.php"
// wurde auf ABSCHICKEN geklickt?
if(isset($_POST["submit"])!=0)
{

// es wurde kein Name eingetragen
if(!$_POST["name"] || empty($_POST["name"]))
{
?>
<div align="left"><span class="mail"><p>Sie haben folgende Angabe vergessen einzutragen: Name.</span></p></div>
<?php
}

// es wurde keine E-Mail Adresse eingetragen
elseif(!$_POST["email"] || empty($_POST["email"]))
{
?>
<div align="left"><span class="mail"><p>Sie haben folgende Angabe vergessen einzutragen: eMail-Adresse.</span></p></div>
<?php
}
// es wurde keine Nachricht eingetragen
elseif(!$_POST["nachricht"] || empty($_POST["nachricht"]))
{
?>
<div align="left"><span class="mail"><p>Sie haben folgende Angabe vergessen einzutragen: Nachricht.</span> </p></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($deinemailadresse,"@"))."\n";

// Format der Mail
$header.="Content-Type: text/plain;\n";

// Name des Mailprogramms, hier die PHP-Version
$header.="X-Mailer: PHP/".phpversion();


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

// Mail wird nun verschickt
mail($deinemailadresse,$betreff,$nachricht1,$header);

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

// Text der Dankesmail
$body_danke = "Hallo ".$_POST["name"].",\n\nDanke für deine Nachricht!\n\nSie erhalten in Kürze Antwort von mir.\n\n\nMit freundlichen Gruessen\n\n".$deinname."\n\n--\n\nIhre Nachricht:\n\n".$nachricht1."";

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

// Senden von der Dankmail
mail($_POST["email"],$betreff_danke,$body_danke,$header_danke);
?>
<table border="0"><tr><td colspan="2" align="left">
<span class="mail"><p>Vielen Dank für folgende Nachricht</p></span></td></tr>
<tr><td colspan="2" align="center"> </td></tr>
<tr><td><span class="mail"><p>Dein Name:</p></span></td><td><?php echo $_POST["name"]; ?></td></tr>
<tr><td><span class="mail"><p>Deine eMail-Adresse:</p></span></td><td><?php echo $_POST["email"]; ?></td></tr>
<?php } ?>
<tr><td valign="top"><span class="mail"><p>Deine Nachricht:</p></b></td><td><?php echo nl2br($_POST["nachricht"]); ?></td></tr><tr>
<tr><td colspan="2" align="center"> </td></tr>
<td colspan="2" align="center"><span class="mail"><p>Sie erhalten in Kürze eine Bestätigungsmail von uns.</p></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><p>Ihr Name:</p></span></td>
<td><input type="text" name="name" class="formular"></td>
</tr>
<tr>
<td><p>Betreff:</p></td>
<td><input type="text" name="betreff" class="formular"></td>
</tr>
<tr>
<td><p>Ihre eMail-Adresse</p></td>
<td><input type="text" name="email" class="formular"></td>
</tr>

<tr>
<td valign="top"><p>Ihre Nachricht:</p></td>
<td><textarea name="nachricht" cols="50" rows="5" class="feld"></textarea></td>
</tr>
<tr>
<td> </td>
<td align="left"><input type="reset" value="zurücksetzen" class="formular"> <input type="submit" value="abschicken" name="submit" class="formular"></td>
</tr>
</table>
</form>
<!-- end-nicht-gesendet -->
<?php } ?>
</div>

2 Antworten

0 Punkte
Beantwortet von Experte (6.4k Punkte)
Hallo,

also wenn ich Deinen Code ausprobiere und 2 kleine Fehler korrigiere, dann wird mir nur das Formular angezeigt...(auch wenn ich vor dem Testen des Codes von mehreren andere Fehlern ausgegangen bin)

1. hinter
include "config.php"
fehlt ein Semikolon...also include "config.php";

2. einen Punkt weniger bei
// Header für die Dankesmail, analog zu oben
$header_danke.="From: \"".$deinname."\" <".$deinemailadresse.."\n";
also ".$deinemailadresse."\n";

aber ich weiss nicht, was in der config.php drinsteht (und evt. Fehler verursacht).

Dein Code steht in einer Datei, die auf .php endet?

mfg, sup2010
0 Punkte
Beantwortet von bugg Einsteiger_in (25 Punkte)
Hi sup2010,

vielen Dank, für die schnelle Antwort! Hab natürlich vergessen die html Datei in eine php umzubenennen...jetzt scheint alles zu funzen...vielen Dank!

Schöne Grüße
Bugg
...