<?php
/**
* Dieser nun folgende PHP-Teil kommt in die Datei form.php ganz oben oder an erster Stelle.
* Er muss lediglich im ganannten Bereich ".. ---- ab hier anpassen ---..." angepasst werden
* Eine Danke- oder Mailbestätigungsseite muss noch erstellt werden. Allerdings ist in der
* Einstellungmöglichkeit schon eine URL vorbereitet und muss lediglich per path und Dateiname
* angepasst werden.
*/
error_reporting(E_ALL);
// Errormitteilungen (entsprechende Texte anpassen)
define('ERROR_1', 'Ihre E-Mailadresse ist nicht vorhanden.');
define('ERROR_2', 'Ihre E-Mailadresse ist ungültig.');
define('ERROR_3', 'Ohne Mitteilung kein Kontakt.');
define('ERROR_4', 'Sie haben keinen Familiennamen angegeben.');
define('ERROR_5', 'Sie haben keinen Vornamen angegeben.');
define('ERROR_6', 'Ein leeres Formular nützt nichts.');
define('ERROR_7', 'Die ausgewählte Datei ist zu groß.');
define('ERROR_8', 'Die ausgewählte Datei hat nicht den erlaubten Dateitype');
// Aktionpath - diese Einstellung nur verwnden, wenn der HTML-Teil unterhalb des PHP-Teil folgt
// wie in diesem vorhandenen Beispiel
define('ACTION_PATH', 'form.php');
define('MAIL_SENDER', 'deine@emailadesse.de');
define('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular');
define('MAIL_SUBJECT_K','Ihre Kontaktmitteilung');
define('MAILCHARSET', 'utf-8');
define('STARTTEXT',"Mitteilung vom Webformular:\n\r");
define('MAIL_KOPIE', 1);
// Seitenangabe, auf welche Seite bei erfolgreicher Übermittlung weitergeleitet werden soll
define('LOCATION', $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!
// %s stehen für einen Platzhalter und gleichzeitig als String
$USER_MAIL_TEXT = "Sehr geehrte/r %s %s %s,\n\n\r";
$USER_MAIL_TEXT .= "Ihre Mitteilung hatte folgenden Inhalt:\r\n\n\tStrasse HausNr.: %s %s\r\n\n\tPlz Ort: %s %s\r\n\tTelefon: %s %s\r\n\tE-Mail: %s\r\n\n\t";
$USER_MAIL_TEXT .= "Mitteilung:\r\n\t%s";
$USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";
$htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => 'Firma');
/**
* function _gp($var)
*
* @param int/string $var
* @return int/string
*/
function _gp($var) {
if(isset($var)) {
$val = isset($_POST[$var]) ? $_POST[$var] : '';
return trim($val);
}
}
/**
* function _selectAddress($htmlAddress, $select)
*
* @param array $htmlAddress
* @param string $select
* @return string
*/
function _selectAddress($htmlAddress, $select) {
if(is_array($htmlAddress)) {
$ret = '';
foreach($htmlAddress AS $k => $v) {
if(isset($select) && $select == $k) { $selected = ' selected="selected"'; }
else { $selected = ''; }
$ret .= "<option value=\"$k\"$selected>$v</option>\n";
}
return print $ret;
} else {
return print 'Es wurde keine Anrede definiert.';
}
return print $ret;
}
/**
* function _E($int)
*
* @param integer $int
* @return string
*/
function _E($int) {
$array = array( 1 => ERROR_1,
2 => ERROR_2,
3 => ERROR_3,
4 => ERROR_4,
5 => ERROR_5,
6 => ERROR_6,
7 => ERROR_7,
8 => ERROR_8
);
if($array[$int]) return $array[$int];
}
/**
* function checkMail($mailAdresse)
*
* @param string $mailAdresse
* @return boolean
*/
function checkMail($mailAdresse) {
if(isset($mailAdresse)) {
// Prüft auf PHP-Version
if(phpversion() >= '5.2.0') {
// prüft per filter_var und Parameter FILTER_VALIDATE_EMAIL
if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL)) { return 2; }
return false;
} else {
// Prüft ob E-Mailadresse ungültig
if(preg_match('/^[^\s@<>]+@[^\s@<>]+\.[a-z]{2,4}$/', $mailAdresse)) { return 2; }
return false;
}
} else {
return 1;
}
}
/**
* checkFile($file)
*
* @param array $file
* @param array $types
* @return boolean
*/
function checkFile($file, $types = array()) {
if( isset($file['tmp_name']) && $file['tmp_name'] != '' &&
isset($file['name']) && $file['name'] != '') {
$size = $file['size'];
$type = $file['type'];
if($size > FILE_SIZE) { return 7; }
elseif(isset($types) && !in_array($type, $types)) { return 8; }
else { return false; }
}
}
$textmitteilung = ''; // Variable indiziert
$error_a = 0;
$checkedKopie = '';
$fileName = '';
$m_anrede = _gp('anrede');
if(intval(_gp('action')) == 1) {
// Prüft, ob die E-Mail-Adresse angegeben wurde.
if($m_email = _gp('email')) {
$error_a = checkMail($m_email);
} else {
$error_a = 1;
}
// Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.
if(!$m_mitteilung = _gp('mitteilung')) { $error_a = 3; }
// Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.
if(!$m_fname = _gp('fname')) { $error_a = 4; }
// Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung
if(!$m_vorname = _gp('vorname')) { $error_a = 5; }
// prüfe ob User Mailkopie wünscht
if($mailKopie = _gp('kopie') == 1) { $checkedKopie = ' checked="checked"'; }
// Prüft, ob eine Anrede ausgewählt wurde, wenn nicht
if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }
// Prüft, ob eine Strasse angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_strasse = _gp('strasse')) { $m_strasse = ''; }
// Prüft, ob die Hausnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_hausnummer = _gp('hausnummer')) { $m_hausnummer = ''; }
// Prüft, ob eine PLZ angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_plz = _gp('plz')) { $m_plz = ''; }
// Prüft, ob ein Wohnort angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_ort = _gp('ort')) { $m_ort = ''; }
// Prüft, ob eine Vorwahl angegeben wurde. Wenn nicht, bleibt die Variable leer.
if(!$m_vw = _gp('vw')) { $m_vw = ''; }
// Prüft, ob die Rufnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
if($m_rn = _gp('rn')) { $m_rn = ' / '. $m_rn; }
// Prüft, ob alle Pflichtfelder vorhanden sind.
if(!$error_a) {
$fileNameAdmin = '';
$fileNameUser = '';
$fileNameAdmin = $fileName[0];
$fileNameUser = $fileName[1];
}
// Mailbedingungen in From von MIME und HTML
$header = 'MIME-Version: 1.0'."\r\n";
$header .= 'Content-type: text/html; charset='. MAILCHARSET ."\r\n";
$header .= 'From: <'. MAIL_SENDER .'>';
if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }
else { $anrede = ''; }
// Mitteilungstext für den Seiteninhaber
$mailTextWM = sprintf("%s\r\nAnrede: %s\n\rVorname Name: %s %s\n\rStrasse / HsNr: %s %s\n\rPLZ Wohnort: %s %s\n\rTelefon: %s %s\n\rE-Mail: %s\n\rMitteilung:\n\n\r%s\r\n\nDateiname: %s\r\n\n\nMitgeteilt am: %s",
STARTTEXT,
$anrede,
$m_vorname,
$m_fname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_email,
$m_mitteilung,
$fileNameAdmin,
date('d.m.Y, H:i:s'));
// E-Mail an Seiteninhaber wird gesendet.
mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);
// Bestätigungsmail an Absender
if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) {
// Textzusammenstellung für den Absender
$msgUser = sprintf( $USER_MAIL_TEXT,
$anrede,
$m_vorname,
$m_fname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_email,
$m_mitteilung,
$fileNameUser);
// Senden der Bestätigungsmail an den Formularausfüllenden.
mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);
}
// Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
header('Location: '.LOCATION);
exit();
}
}