Hallo,
mich hat jetzt etwas das php - Fieber gepackt, aber guten Ideen stehen leider mangelhafte praktische Fähigkeiten gegenüber
Also vorneweg vielleicht mal der Code und danach meine Fragen:
<table border="0" cellpadding="1" cellspacing="10">
<form action="sendcontact.php" method="post">
<tr>
<td>Anrede:</td>
<td><select name="Anrede" size="1"> <option>Frau</option><option>Herr</option></select></td>
</tr>
<tr>
<td>Name:</td>
<td><input name="Name" size="40" type="text"></td>
</tr>
<tr>
<td>eMail: *</td>
<td><input name="Email" size="40" type="text"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><input name="Betreff" size="40" type="text"></td>
</tr>
<tr>
<td>Nachricht: *</td>
<td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="send" type="submit"
value="Abschicken"> <input name="Reset" type="reset"
value="Löschen"></td>
</tr>
</form>
Alles anzeigen
und meine sendcontact:
<?php
$empfaenger = "test@abc.de";
if (isset($_POST['send']))
// Pflichtfelder definieren //
{
if(empty($_POST['Email']) || empty($_POST['Nachricht']))
{
echo"Sie haben nicht alle Pflichtfelder ausgefüllt. Bitte gehen Sie <a
href=\"javascript:history.back();\">zurück</a> und bearbeiten Sie Ihre Eingaben.";
}
// Ende Pflichtfelder //
// Nachricht zusammen bauen //
else
{
$emailtext = "Über das Kontaktforumlar wurde folgende Nachricht verschickt:
\n\n";
while(list($inputfeld, $angabe)=each($_POST))
{
if($inputfeld!="send")
{
$emailtext .= $inputfeld.": ".$angabe."\n";
}
}
$emailtext .= "\nDatum/Zeit: ";
$emailtext .= date("d.m.Y H:i:s");
$mailbetreff = "Kontakt: ";
$mailbetreff .= $_POST['Betreff'];
mail($empfaenger, $mailbetreff, $emailtext, "From:
.$_POST['Email']");
echo"Ihre Nachricht wurde verschickt.";
}
}
else
{
echo"Ein Fehler ist aufgetreten. Bitte starten Sie einen neuen <a
href=\"kontakt.php\">Versuch</a>.";
}
?>
Alles anzeigen
Folgende Probleme stellen sich:
1. Die Absenderemail steht im Mailtext und nicht unter "From", das müsste doch gehen, oder? Ich finde aber anscheinend nicht den verursachenden Fehler.
2. Ich habe mich schlau gemacht und festgestellt, dass oben erstellter Code easy als Spamschleuder missbaucht werden kann - das muss ich nicht unbedingt haben.
Captchas will ich aber auch nicht, die finde ich viel zu nervig. Was für weitere Spamschutzmöglichkeiten wären zu empfehlen?
Wie wäre es, wenn ich die angegebene Emailadresse einfach als Teil der Mailnachricht belasse und sie nicht unter die "From" Angabe schreibe - seh ich das dann richtig, dass mein Formular nicht mehr dazu benutzt werden kann andere zuzuspammen, sondern nur noch mich selber? Ich meine, dann dürften ja so Angaben wie Bcc etc. nichts mehr bringen, da sie von dem php-Script nur noch als eine Textvariable ausgegeben werden. Seh ich das richtig? Gibt es bessere Möglichkeiten?
Ich bedanke mich schon Mal bei allen geduldigen Helfern