Hallo an alle,
ich bin auf der Suche nach einem modernen Kontaktformular mit Spamschutz. Modern soll heißen an die heutigen Standards angepasst, zB PHP7, Sicherheit etc.
Ich hab hier im Forum ein Tutorial zum PHP-Mailer gefunden, das mir auch schon beim Googlen unterkam. Dort stört mich aber, dass ich meine SMTP-Zugangsdaten angeben soll...die liegen ja dann einfach mal so auf dem Server rum und können ausspioniert werden. Genauso beim Swift Mailer.
Kontaktformular.com ist leider nur für Privatanwender kostenlos und ich soll eine Seite für Vereine machen, wofür es explizit als nicht kostenlos ausgewiesen ist.
EasyPHP Contact Form würde mir nun am meisten zusagen mit der Honeypot-Funktion. Captcha will ich keines, die sind nur lästig und liegen zum Teil ja auch wieder auf externen Servern.
Auf einer Website, die ich vor 15 Jahren gestaltet habe, hab ich folgendes Formular verwendet und (natürlich) Spam ohne Ende bekommen. (Namen rausgelöscht, die Seite existiert nicht mehr).
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontakt</title>
<link rel="stylesheet" href="../templates/style.css" type="text/css">
<!--[if gte IE 6]>
<style type="text/css">
span.space {
height:0px;
}
div.kaiserin {
float:left;
margin-top:13px;
}
</style>
<![endif]-->
<style type="text/css">
span.space {
height:10px;
}
div.kaiserin {
float:left;
margin-top:20px;
}
</style>
<style type="text/css">
p.anfrage {
font-family:verdana;
font-size:12px;
color:#606060;
margin-top:0px;
margin-bottom:0px;
}
input, textarea, select {
font-family:verdana;
font-size:12px;
color:#606060;
border:1px solid #999999;
background-color:#FFFFFF;
overflow:auto;
}
input.send, input.reset
{
font-family:verdana;
font-size:12px;
color:#606060;
border:1px solid #999999;
background-color:#FFFFFF;
}
</style>
<script src="../templates/hover.js" language="javascript"></script>
</head>
<body>
<?php
### Konfiguration ###
#Programmierung CM24
# Bitte Stellen Sie das script Ihren Bedürfnissen ein!
# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'anfrage@...';
# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"Ferienwohnungen xxx" <noreply@...>';
# Welchen Betreff sollen die Mails erhalten?
$strSubject = 'Anfrage';
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = '.../anfrage_gesendet.htm';
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter = ": ";
### Ende Konfiguration ###
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
?>
<table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
<tr>
<td height="100%" width="100%" valign="middle" align="center">
<table cellpadding="0" cellspacing="0" width="722" style="border:1px solid #000000; background-color:#FFFFFF;">
<tr>
<td height="163"><a href="home.htm"><img src="../images/header_panorama_schrift.jpg" height="162" width="748" style="border-bottom:1px solid #000000;" alt="Home"></a></td>
</tr>
<tr>
<td height="27">
<a href="ausstattung.htm" onMouseOver="swap('imgLink1','Link1on')" onMouseOut="swap('imgLink1','Link1')"><img name="imgLink1" src="images/button_ausstattung.jpg" height="27" width="167" alt="Ausstattung"></a><a href="preise.htm" onMouseOver="swap('imgLink2','Link2on')" onMouseOut="swap('imgLink2','Link2')"><img name="imgLink2" src="images/button_preise.jpg" height="27" width="105" alt="Preise"></a><img src="images/button_anfrage_hover.jpg" height="27" width="121" alt="Anfrage"><a href="anreise.htm" onMouseOver="swap('imgLink4','Link4on')" onMouseOut="swap('imgLink4','Link4')"><img name="imgLink4" src="images/button_anreise.jpg" height="27" width="115" alt="Anreise"></a><a href="links.htm" onMouseOver="swap('imgLink5','Link5on')" onMouseOut="swap('imgLink5','Link5')"><img name="imgLink5" src="images/button_links.jpg" height="27" width="95" alt="Links"></a><a href="impressum.htm" onMouseOver="swap('imgLink6','Link6on')" onMouseOut="swap('imgLink6','Link6')"><img name="imgLink6" src="images/button_impressum.jpg" height="27" width="145" alt="Impressum"></a>
</td>
</tr>
<tr>
<td height="410" valign="top"><div class="scroll"><div class="kaiserin">
<!-- <p class="text01">
Dieses Formular funktioniert im Moment leider nicht.<br>
Bitte senden Sie ein E-Mail an anfrage (at) ferienwohnungen-perterer.at<br>
<br>
</p> -->
<form id="form1" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
<table border="0" cellpadding="3" cellspacing="0" align="left">
<tr>
<td width="125" valign="top">
<p class="anfrage">Name: </p>
</td>
<td>
<input name="name" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Straße: </p>
</td>
<td>
<input name="strasse" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">PLZ: </p>
</td>
<td>
<input name="plz" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Ort: </p>
</td>
<td>
<input name="ort" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Land: </p>
</td>
<td>
<input name="land" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">E-Mail: </p>
</td>
<td>
<input name="email" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Telefon: </p>
</td>
<td>
<input name="tel" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Ferienwohnung: </p>
</td>
<td>
<select name = "fewo">
<option value="Ferienwohnung I" >Ferienwohnung I</option>
<option value="Ferienwohnung II" >Ferienwohnung II</option>
</select>
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Anreise: </p>
</td>
<td>
<input name="anreise" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Abreise: </p>
</td>
<td>
<input name="abreise" value="" size="30">
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Personen: </p>
</td>
<td>
<select name = "personen">
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
</select>
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage"> </p>
</td>
<td>
<p class="anfrage">
Davon sind <input name="erwachsene" value="" size="1"> Erwachsene und <input name="kinder" value="" size="1"> Kinder im Alter von <input name="kinder_alter" value="" size="15"> Jahren.
</p>
</td>
</tr>
<tr>
<td width="125" valign="top">
<p class="anfrage">Sonstiges: </p>
</td>
<td>
<textarea name="sonstiges" rows="6" cols="54" wrap="soft"></textarea>
</td>
</tr>
<tr>
<td width="125" valign="top"> </td>
<td>
<input class="send" type="submit" value="Senden">
<input class="reset" type="reset" value="Löschen">
</td>
</tr>
</table>
</form>
</div></div></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Alles anzeigen