<?php
//Funktion Formulareingaben überprüfen
function check_injection($foobar) {
if ( strpos($foobar,"\n") || strpos($foobar,"\r") || strpos($foobar,"cc:") || strpos($foobar,"bcc:") || strpos($foobar,"Content-Type:")) {
return flase;
}
else { return true; }
}
//Funktion Email überprüfen
function check_email($foobar) {
$nonascii = "\x80-\xff";
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$protocol = '(?:mailto:)';
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,4}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
return preg_match("/^$regex$/",$foobar);
}
//Funktion Domains blocken
function block_domain($foobar) {
if ( strpos($foobar,"meine-domain.de") || strpos($foobar,"andere-domain.com")) {
return false;
}
else { return true; }
}
// Standardvariablen definieren
$betreff = "Betreff";
$nachricht = "Nachricht";
$mysite = "www.google.de";
//Fehlermeldung für Email Injection
$stop_message = "<p>email injection detected! - ip: logged<br />Sie haben Daten in einer Form angegeben, die auf einen versuchten Missbrauch schließen lassen!</p><p>Die Ausdrücke wie 'bbc:', 'cc:' oder 'Content-Type:' sind nicht in allen Feldern erlaubt.<br />Bitte überprüfen Sie Ihre Eingaben und versuchen Sie es erneut.</p>";
if (isset($_POST['submit'])) {
//falls register globals aus ist
$verify1 = $_POST['verify1'];
$verify2 = $_POST['verify2'];
$firstname = htmlentities($_POST['firstname']);
$lastname = htmlentities($_POST['lastname']);
$email = $_POST['email'];
$emp1 = $_POST['emp1'];
$email1 = $_POST['email1'];
$emp2 = $_POST['emp2'];
$email2 = $_POST['email2'];
$emp3 = $_POST['emp3'];
$email3 = $_POST['email3'];
$emp4 = $_POST['emp4'];
$email4 = $_POST['email4'];
$nachricht = htmlentities($_POST['nachricht']);
$send = "yes";
//Daten überprüfen
// Überprüfen ob das Formular zur Eingabe benutzt wurde
if ($verify2 != md5(md5($verify1))) {
echo $stop_message;
$send = "no";
}
//IP und Datum ermitteln
$remote = getenv("REMOTE_ADDR");
if ($remote == "") { $ip = "<i> no ip </i>"; }
else {
$ip = getHostByAddr($remote);
$ip .= " // ";
$ip .= $remote;
}
if (!empty($HTTP_POST_VARS)) { extract($HTTP_POST_VARS); }
$date = date("m.d.Y H:i:s");
//Daten überprüfen
if ( empty ($firstname)) {
echo "Geben Sie bitte Ihren vollständigen Namen ein. Danke.<br />";
$send = "no";
}
if (!empty ($lastname)) {
if (!check_injection($lastname)) {
echo $stop_message;
$send = "no";
}
}
if (!empty ($firstname)) {
if (!check_injection($firstname)) {
echo $stop_message;
$send = "no";
}
}
if (empty ($email)) {
echo "Geben Sie bitte Ihre Emailadresse ein. Danke.<br />";
$send = "no";
}
if (!empty ($email)) {
if (!check_injection($email)) {
echo $stop_message;
$send = "no";
}
if (!check_email($email)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
if (!block_domain($email)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
}
if (empty ($email1)) {
echo "Geben Sie bitte mindestens die Emailadresse eines Empfängers ein. Danke.<br />";
$send = "no";
}
if (!empty ($email1)) {
if (!check_injection($email1)) {
echo $stop_message;
$send = "no";
}
if (!check_email($email1)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
if (!block_domain($email1)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
}
if (!empty ($email2)) {
if (!check_injection($email2)) {
echo $stop_message;
$send = "no";
}
if (!check_email($email2)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
if (!block_domain($email2)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
}
if (!empty ($email3)) {
if (!check_injection($email3)) {
echo $stop_message;
$send = "no";
}
if (!check_email($email3)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
if (block_domain($email3)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
}
if (!empty ($email4)) {
if (!check_injection($email4)) {
echo $stop_message;
$send = "no";
}
if (!check_email($email4)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
if (!block_domain($email4)) {
echo "Geben Sie bitte eine gültige Emailadresse an. Danke.<br />";
$send = "no";
}
}
if (empty ($nachricht)) {
echo "Geben Sie bitte eine Nachricht ein. Danke.<br />";
$send = "no";
}
if (!empty ($nachricht)) {
if (!check_injection($nachricht)) {
echo $stop_message;
$send = "no";
}
}
//Daten senden
if ($send == "yes") {
$headers = "From: $firstname $lastname <$email>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
mail("$email1", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp1,
$firstname $lastname empfiehlt Dir: $mysite
außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");
mail("$email2", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp2,
$firstname $lastname empfiehlt Dir: $mysite
außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");
mail("$email3", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp3,
$firstname $lastname empfiehlt Dir: $mysite
außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");
mail("$email4", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp4,
$firstname $lastname empfiehlt Dir: $mysite
außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");
}}
//Kontaktformular
?>