Klar, aber bitte nur den relevanten Teil!
Soo, ich hoffe das ist nur der wichtige teil:
das hier ist link vom formmailer eingebunden:
<?PHP ####################################################################### # um-Formmailer Skript V1.00 # # zur freien Verwendung, d. h. keinerlei Lizenzen oder Copyright # # ein backlink wäre aber nett! # # Auf jeden Fall aber bitte diesen Tag im XHTML Template einbinden: # # <meta name="Generator" content="script by http://um-fritz.de" /> # # Danke und viel Spaß! # # http://um-fritz.de # #######################################################################
Dieses Skript liest eine XHTML-Template Datei ein und generiert den Inhalt aus
dem Formulartemplate. Je nach Benutzereingaben werden verschiedenen Fälle unter-
schieden, denen dann entsprechende Ausgaben zugeordnet werden. Bis alle Angaben
gemacht wurden, und wenigstens eine Vorschau erfolgte, wird das Formulat erneut
ausgegeben. Bei korrekten Angaben und erfolgter Vorschau erfolgt der Versand der
e-mail und die Dankesseite wird ausgegeben.
# Skriptteil, ändern auf eigene Gefahr! # $pfad = str_replace($_SERVER['DOCUMENT_ROOT'], "", dirname($_SERVER['SCRIPT_FILENAME'])); require_once ($_SERVER['DOCUMENT_ROOT'].$pfad."/global_vars.php"); $page = get_html_template (); if (!empty($POST['falle'])) { $content = "<h1>Spamfalle wurde ausgefüllt</h1>\n <p>Bitte die Seite erneut aufrufen</p>"; $page = page_replace_var($page, "content", $content); show_page(); exit; } if (empty($POST['confirm'])) { create_form("standard", "standard", "standard", "undone"); } if (!preg_match("#[1]{1,40}@[a-zA-Z0-9.-]{1,40}.[a-zA-Z0-9.-]{1,6}$#", $_POST['mail_from'])) { $error_msg[] = $kontakt_vars["error_no_mail_from"]; $case_mail = "error"; } else { $case_mail = "standard"; } if (strlen($_POST['message']) < 10) { $error_msg[] = $kontakt_vars["error_no_message"]; $case_message = "error"; } else { $case_message = "standard"; } if (isset($error_msg)) { foreach ($error_msg as $f) { $kontakt_vars["error_legend_text"] .= "\n\t $f <br />"; } create_form("error", $case_mail, $case_message, "error"); }
if ( $_POST['confirm'] != "done") { create_form("confirm", "confirm", "confirm", "done"); } #Ab hier sind keine Fehler mehr in den Benutzereingaben -> Mail senden + Dankeseite ausgeben mail_and_thanks();
/########################################################################## # Funktionen # ##########################################################################/
function get_html_template () { # Ausgabe des HTML Templates # global $html_template_file; if(!file_exists($html_template_file)){ echo " <h1>Installationshinweis</h1> <p>Bevor Sie das Formular einsetzen, legen Sie bitte die HTML Template-Datei <strong>$html_template_file</strong> an.</p>"; exit; } else { $page = file_get_contents($html_template_file); } return ($page); }
function create_form($case_form, $case_mail, $case_message, $kontakt_confirm) { # Formularseite erstellen # global $page, $form_file, $kontakt_vars; if (isset($_POST)) { encode_postdata(); } if(!file_exists($form_file)){ $content = " <h1>Installationshinweis</h1> <p>Bevor Sie das Formular einsetzen, legen Sie bitte die Form Template-Datei <strong>$form_file</strong> an.</p>"; } else { $content = file_get_contents($form_file); $content = page_replace_var($content, "title", $kontakt_vars[$case_form."_headline"]); $content = page_replace_var($content, "headline", $kontakt_vars[$case_form."_headline"]); $content = page_replace_var($content, "case", $case_form); $content = page_replace_var($content, "self", $_SERVER['PHP_SELF']); $content = page_replace_var($content, "legend", $kontakt_vars[$case_form."_legend"]); $content = page_replace_var($content, "confirm", $kontakt_confirm); $content = page_replace_var($content, "legend_text", $kontakt_vars[$case_form."_legend_text"]); $content = page_replace_var($content, "Vorname", $_POST['Vorname']); $content = page_replace_var($content, "Zuname", $_POST['Zuname']); $content = page_replace_var($content, "mail_from", $_POST['mail_from']); $content = page_replace_var($content, "message", $_POST['message']); $content = page_replace_var($content, "kontakt", $kontakt_vars[$kontakt_confirm."_submit"]); $content = page_replace_var($content, "case_mail", $case_mail); $content = page_replace_var($content, "case_message", $case_message); } $page = page_replace_var($page, "content", $content); show_page(); exit; }
function mail_and_thanks(){ # Mail Senden und Dankesseite ausgeben # global $page, $kontakt_vars, $danke_file; decode_postdata(); # mail senden $headers = "From: {$_POST['Vorname']} {$_POST['Zuname']} "; $headers .= "<{$_POST['mail_from']}>\r\n"; $headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n"; $headers .= "Content-Transfer-Encoding: 8bit"; mail($kontakt_vars["mailto"], $kontakt_vars["subject"], ($_POST['message']), $headers); # Danke Seite Ausgeben $content = file_get_contents($danke_file); $page = page_replace_var($page, "title", "Danke"); encode_postdata(); set_br(); $content = page_replace_var($content, "adress", $kontakt_vars['mailto']); $content = page_replace_var($content, "mail_from", $_POST['mail_from']); $content = page_replace_var($content, "message", $_POST['message']); $page = page_replace_var($page, "content", $content); show_page(); exit; }
function encode_postdata() { # Codieren von Code in Benutzereingabe # foreach ($_POST as $key => $wert) { if(get_magic_quotes_gpc()) { // wenn magic_quotes an, dann strip slashes $_POST[$key] = stripslashes($_POST[$key]); } if ($key != "message") { $_POST[$key] = trim(strip_tags($_POST[$key])); $_POST[$key] = str_replace("\n", "", $_POST[$key]); $_POST[$key] = str_replace("\r", "", $_POST[$key]); $_POST[$key] = str_replace(""", "``", $_POST[$key]); $_POST[$key] = str_replace("'", "`", $_POST[$key]); } $_POST[$key] = trim(preg_replace("@content-type:|bcc:|cc:|to:|from:@im", " # verbotener Inhalt # ", $_POST[$key])); $_POST[$key] = htmlspecialchars($_POST[$key]); } }
function decode_postdata() { # Decodieren von Code in Benutzereingabe # foreach ($_POST as $key => $wert) { $_POST[$key] = (stripslashes(html_entity_decode($_POST[$key]))); } }
function set_br() { # Breaklines setzen bei Dankeformular # foreach ($_POST as $key => $wert) { $_POST[$key] = str_replace("\n", "\t<br />\n\t", $_POST[$key]); } }
function page_replace_var($template_content, $name, $value) { # [%name%] ersetzen # $pattern = "[%$name%]"; return(str_replace($pattern, $value, $template_content)); }
function show_page() { # Seite ausgeben # global $page; echo $page; exit; }
?>
Und das hier sind die "global vars":
<?PHP /* ####################################################################### # um-Formmailer Skript V1.00 # # zur freien Verwendung, d. h. keinerlei Lizenzen oder Copyright # # ein backlink wäre aber nett! # # Auf jeden Fall aber bitte diesen Tag im XHTML Template einbinden: # # <meta name="Generator" content="script by http://um-fritz.de" /> # # Danke und viel Spaß! # # http://um-fritz.de # #######################################################################
diese Datei enthält alle nötigen Variablen im Array $kontakt_vars für den Formmailer. Es gibt zumeist drei Arten von Schlüsseln in diesem Array: standard = Ausgaben für den ersten (standard) Fall error = Ausgaben im Fall einer nicht erfolgten oder fehlerhaften Eingabe confirm = Ausgaben für die Vorschau Die Ausgaben selbst sind im Arrayschlüssel: headline = Überschrift der Seite legend = Legendenüberschrift legend_text = Text der in der Legende ausgegeben wird no_message = Fehlermeldung wenn keine Nachricht eingegeben wurde no_mail_from = Fehlermeldung wenn keine Absenderadresse eingegeben wurde submit = Text auf dem Submitbutton Daraus ergibt sich z.B. $kontakt_vars['error_legend_text'], welche den Text beinhaltet, der im Falle einer fehlerhaften Eingabe in der Legende ausgegeben wird. Diese Texte können den eigenen Wünschen angepasst werden. Wichtig ist die Variable $kontakt_vars["mailto"]! Hier muß die Adresse angegeben werden, an die die E-Mail gesendet werden soll. */
# Konfigurations Teil # $kontakt_vars = array(); $kontakt_vars["mailto"] = "christ@web.de"; # E_mail Empfänger $kontakt_vars["subject"] = "Homepage-Kontaktformular"; # Den gewünschten Betreff für die Mail eingeben $kontakt_vars["standard_headline"] = "Kontaktformular"; $kontakt_vars["confirm_headline"] = "Vorschau"; $kontakt_vars["error_headline"] = "Datenkorrektur"; $kontakt_vars["standard_legend"] = "Hinweis:"; $kontakt_vars["confirm_legend"] = "Datenbestätigung:"; $kontakt_vars["error_legend"] = "Eingabefehler:"; $kontakt_vars["standard_legend_text"] = "Bitte alle mit <strong>»</strong> gekennzeichneten Felder ausfüllen."; $kontakt_vars["confirm_legend_text"] = "Die Nachricht kann nun gesendet werden. Bitte die Eingaben noch einmal überprüfen.<br />\n"; $kontakt_vars["error_legend_text"] = "Die Nachricht wurde aus folgendem Grund nicht gesendet:<br />"; $kontakt_vars["error_no_mail_from"] = "Es wurde keine gültige E-Mail Adresse eingegeben."; $kontakt_vars["error_no_message"] = "Der Nachrichtentext ist leer oder zu kurz."; $kontakt_vars["undone_submit"] = "Weiter"; $kontakt_vars["done_submit"] = "Senden"; $kontakt_vars["error_submit"] = "Prüfen";
Include Pfade - !nicht ändern! #
$pfad = str_replace($_SERVER['DOCUMENT_ROOT'], "", dirname($_SERVER['SCRIPT_FILENAME'])); $html_template_file = $_SERVER['DOCUMENT_ROOT'].$pfad."/templates/page.html"; $form_file = $_SERVER['DOCUMENT_ROOT'].$pfad."/templates/feedback.inc"; $danke_file = $_SERVER['DOCUMENT_ROOT'].$pfad."/templates/danke.inc"; ?>
Liebe Grüße,
Christian.
a-zA-Z0-9.-_+ ↩︎