Ich habe auf meiner website ein Kontaktformular. Mailtest.php prüft, ob eine email-Adresse eingegeben wurde. Im positiven Falle wird eine Mail versendet, im negativen nicht. Das funktioniert prima:
<?
$mailsubject = "RNAx GmbH";
$mailheaders = "Return-Path:info@rnax.de\n";
$mailheaders .= "From: info@rnax.de\n";
$mailheaders .= "Cc: \n";
$mailheaders .= "Bcc: \n";
$mailheaders .= "Reply-To:info@rnax.de\n";
$mailheaders .= "X-Mailer:mailbot_in_php \n";
if (!$email) {
print("<B>ERROR: No E-mail address given. Action Failed!</B>\n");
exit;
}
if (!$request) {
$request = "None Given";
}
if (!$name) {
$name = "Withheld";
}
if ($recipient==general) {
$recipient = "general information about RNAx.";
}
else
{
$recipient = "specific information about ";
}
$msg = "Thank you $gender $name for your mail\n\n";
$msg .= "Your request was: $recipient $request\n\n";
$msg .= "Name: $name\n";
$msg .= "Company: $company\n";
$msg .= "Department: $department\n";
$msg .= "Street: $street\n";
$msg .= "ZIP: $ZIP\n";
$msg .= "City: $city\n";
$msg .= "Country: $country\n";
$msg .= "Phone: $telephone\n";
$msg .= "Fax: $fax\n";
$msg .= "eMail: $email\n";
$msg .= "We have a mailing list about our website and the company,\n if you are interested reply to this mail with subject: \"subscribe\" ";
$appmsg = "An E-mail has been send from your website by:\n\n";
$appmsg .= "$gender $name\n";
$appmsg .= "Email: $email\n\n";
$appmsg .= "With the following request: $recipient $request\n\n";
$appmsg .= "Further information left:\n\n";
$appmsg .= "Name: $name\n";
$appmsg .= "Company: $company\n";
$appmsg .= "Department: $department\n";
$appmsg .= "Street: $street\n";
$appmsg .= "ZIP: $ZIP\n";
$appmsg .= "City: $city\n";
$appmsg .= "Country: $country\n";
$appmsg .= "Phone: $telephone\n";
$appmsg .= "Fax: $fax\n";
$appmsg .= "eMail: $email\n";
if (mail($email, $mailsubject, $msg, $mailheaders)) {
print("<HTML><BODY BGCOLOR=FFFFFF><TABLE><TR><TD height=10 colspan=2></TD></TR><TR><TD width=10></TD><TD><FONT face=verdane,arial size=2 color=black>Thank you \n $gender $name<BR>\n We recieved your message;<BR><BR>\n");
print("Your request was:\n $recipient $request<BR>\n\n");
print("Name:\n $name<BR>\n\n");
print("Company:\n $company<BR>\n\n");
print("Department:\n $department<BR>\n\n");
print("Street:\n $street<BR>\n\n");
print("ZIP:\n $ZIP<BR>\n\n");
print("City:\n $city<BR>\n\n");
print("Country:\n $country<BR>\n\n");
print("Phone:\n $telephone<BR>\n\n");
print("Fax:\n $fax<BR>\n\n");
print("eMail:\n $email<BR><BR>\n\n");
print("Your Email-copy has been send to your account: $email <BR><BR> We will send you the requested information asap.</font></td></tr></table></body></HTML>");
}
else {
print("Error: The message could not be sent.\n");
}
mail("info@rnax.de"," $mailsubject", "$appmsg", "$mailheaders")
?>
Weil nun Spammer ständig emails von dem Forumlar versenden, habe ich in das Formular ein captcha-Bild und eine code-eingabe eingebaut, die auch angezeigt werden.
Die mailtest.php habe ich wie folgt modifiziert (rot) (die captcha-Prüfung um das "alte" script herumgesetzt):
<?
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
$mailsubject = "RNAx GmbH";
$mailheaders = "Return-Path:info@rnax.de\n";
$mailheaders .= "From: info@rnax.de\n";
$mailheaders .= "Cc: \n";
$mailheaders .= "Bcc: \n";
$mailheaders .= "Reply-To:info@rnax.de\n";
$mailheaders .= "X-Mailer:mailbot_in_php \n";
if (!$email) {
print("<B>ERROR: No E-mail address given. Action Failed!</B>\n");
exit;
}
if (!$request) {
$request = "None Given";
}
if (!$name) {
$name = "Withheld";
}
if ($recipient==general) {
$recipient = "general information about RNAx.";
}
else
{
$recipient = "specific information about ";
}
$msg = "Thank you $gender $name for your mail\n\n";
$msg .= "Your request was: $recipient $request\n\n";
$msg .= "Name: $name\n";
$msg .= "Company: $company\n";
$msg .= "Department: $department\n";
$msg .= "Street: $street\n";
$msg .= "ZIP: $ZIP\n";
$msg .= "City: $city\n";
$msg .= "Country: $country\n";
$msg .= "Phone: $telephone\n";
$msg .= "Fax: $fax\n";
$msg .= "eMail: $email\n";
$msg .= "We have a mailing list about our website and the company,\n if you are interested reply to this mail with subject: \"subscribe\" ";
$appmsg = "An E-mail has been send from your website by:\n\n";
$appmsg .= "$gender $name\n";
$appmsg .= "Email: $email\n\n";
$appmsg .= "With the following request: $recipient $request\n\n";
$appmsg .= "Further information left:\n\n";
$appmsg .= "Name: $name\n";
$appmsg .= "Company: $company\n";
$appmsg .= "Department: $department\n";
$appmsg .= "Street: $street\n";
$appmsg .= "ZIP: $ZIP\n";
$appmsg .= "City: $city\n";
$appmsg .= "Country: $country\n";
$appmsg .= "Phone: $telephone\n";
$appmsg .= "Fax: $fax\n";
$appmsg .= "eMail: $email\n";
if (mail($email, $mailsubject, $msg, $mailheaders)) {
print("<HTML><BODY BGCOLOR=FFFFFF><TABLE><TR><TD height=10 colspan=2></TD></TR><TR><TD width=10></TD><TD><FONT face=verdane,arial size=2 color=black>Thank you \n $gender $name<BR>\n We recieved your message;<BR><BR>\n");
print("Your request was:\n $recipient $request<BR>\n\n");
print("Name:\n $name<BR>\n\n");
print("Company:\n $company<BR>\n\n");
print("Department:\n $department<BR>\n\n");
print("Street:\n $street<BR>\n\n");
print("ZIP:\n $ZIP<BR>\n\n");
print("City:\n $city<BR>\n\n");
print("Country:\n $country<BR>\n\n");
print("Phone:\n $telephone<BR>\n\n");
print("Fax:\n $fax<BR>\n\n");
print("eMail:\n $email<BR><BR>\n\n");
print("Your Email-copy has been send to your account: $email <BR><BR> We will send you the requested information asap.</font></td></tr></table></body></HTML>");
}
else {
print("Error: The message could not be sent.\n");
}
mail("info@rnax.de"," $mailsubject", "$appmsg", "$mailheaders")
}
?>
Was nun passiert: egal, ob eine email-Adresse eingegeben ist oder nicht, oder ob ein Sicherheitscode eingegeben ist, oder nicht - eine Mailwird in keinem fall gesendet, und man landet immer auf einer leeren Seite.
Wo habe ich 'ne Klammer oder ein if nicht zugemacht?
Merci
