resterampe
Mitglied
So hab ich es rausgeschickt:
sprich das packst Du in eine PHP-Datei (z.B.:empfehlen.php) und verlinkst auf diese
Dein Formist dann erstmal hinfällig
sprich das packst Du in eine PHP-Datei (z.B.:empfehlen.php) und verlinkst auf diese
Dein Formist dann erstmal hinfällig
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Seite weiterempfehlen by Julian Brinke</title>
</head>
<body>
<?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") {
echo $send;
$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");
}
echo "Senden abgeschlossen";
}
//Kontaktformular
?>
<form id="mailtoform" method="post" action="">
<fieldset id="mailfrom">
<legend>persönliche Daten</legend>
<label for="firstname">Vorname : </label>
<input name="firstname" id="firstname" type="text" value="<?php echo $firstname; ?>" />
<br />
<label for="lastname">Nachname : </label>
<input name="lastname" id="lastname" type="text" value="<?php echo $lastname; ?>" />
<br />
<label for="email">Email : </label>
<input name="email" id="email" type="text" value="<?php echo $email; ?>" />
</fieldset>
<fieldset id="mailto">
<legend>Empfänger</legend>
<label for="emp1">Empfänger 1 : </label>
<input name="emp1" id="emp1" type="text" value="<?php echo $emp1; ?>" />
<br />
<label for="email1">Email : </label>
<input name="email1" id="email1" type="text" value="<?php echo $email1; ?>" />
<br />
<label for="emp2">Empfänger 2 : </label>
<input name="emp2" id="emp2" type="text" value="<?php echo $emp2; ?>" />
<br />
<label for="email2">Email : </label>
<input name="email2" id="email2" type="text" value="<?php echo $email2; ?>" />
<br />
<label for="emp3">Empfänger 3 : </label>
<input name="emp3" id="emp3" type="text" value="<?php echo $emp3; ?>" />
<br />
<label for="email3">Email : </label>
<input name="email3" id="email3" type="text" value="<?php echo $email3; ?>" />
<br />
<label for="emp1">Empfänger 4 : </label>
<input name="emp4" id="emp4" type="text" value="<?php echo $emp4; ?>" />
<br />
<label for="email4">Email : </label>
<input name="email4" id="email4" type="text" value="<?php echo $email4; ?>" />
</fieldset>
<fieldset id="message">
<legend>Nachricht</legend>
<label for="nachricht">Nachricht : </label>
<textarea name="nachricht" id="nachricht" cols="40" rows="10"><?php echo $nachricht; ?></textarea>
</fieldset>
<p>
<input type="hidden" name="verify1" value="<?php echo time(); ?>" />
<input type="hidden" name="verify2" value="<?php echo md5(md5(time())); ?>" />
<input id="button1" type="submit" name="submit" value="absenden" />
</p>
</form>
</body>
</html>
Zuletzt bearbeitet: