'', "\r" => '' ) ); if ( strlen( $_POST['absender_name'] ) > MAX_LEN_NAME ) { $err_msg[] = 'Der Name ist zu lang. Bitte kürzen, Danke!'; } } if ( empty( $_POST['absender_betreff'] ) ) { $err_msg[] = 'Bitte die Angabe des Betreffs überprüfen!'; } else { $_POST['absender_betreff'] = strtr( $_POST['absender_betreff'], array( "\n" => '', "\r" => '' ) ); if ( strlen( $_POST['absender_betreff'] ) > MAX_LEN_BETREFF ) { $err_msg[] = 'Der Betreff ist zu lang. Bitte kürzen, Danke!'; } } // Prüfen, ob eine korrekte eMail-Adresse übergeben wurde if ( empty( $_POST['absender_email'] ) ) { $err_msg[] = 'Bitte die Angabe der eMail-Adresse überprüfen!'; } elseif ( strlen( $_POST['absender_email'] ) > MAX_LEN_MAIL ) { $err_msg[] = 'Die eMail-Adresse ist zu lang. Bitte kürzen, Danke!'; } else { if ( check_email( $_POST['absender_email'] ) === FALSE ) { $err_msg[] = 'Bitte die Angabe der eMail-Adresse überprüfen!'; } } if ( empty( $_POST['absender_text'] ) ) { $err_msg[] = 'Bitte die Angabe des Textes überprüfen!'; } else { $_POST['absender_text'] = strtr( $_POST['absender_text'], array( "\r\n" => "\n" ) ); if ( strlen( $_POST['absender_text'] ) > MAX_LEN_TEXT ) { $err_msg[] = 'Der Text ist zu lang. Bitte kürzen, Danke!'; } } if ( !empty( $_FILES['absender_datei']['tmp_name'] ) ) { check_upload( $err_msg ); list(, $check_mime ) = check_mime( $err_msg, $mime ); } // Prüfen, ob Fehler aufgetreten sind if ( count( $err_msg ) > 0 ) { // Die Fehlermeldungen anzeigen echo implode( "
\n", $err_msg ); // Das Formular nochmal anzeigen, damit die fehlenden Daten // nachgetragen werden können echo kontakt_output( $extension ); } else { // Wenn eine Datei hochgeladen wurde .... if ( !empty( $_FILES['absender_datei']['tmp_name'] ) ) { $handle = fopen( $_FILES['absender_datei']['tmp_name'], 'rb' ); $file_content = fread( $handle, filesize( $_FILES['absender_datei']['tmp_name'] ) ); fclose( $handle ); $_FILES['absender_datei']['name'] = strtr( $_FILES['absender_datei']['name'], array( ' ' => '_', 'ä'=>'ae', 'ö'=>'oe', 'ü'=>'ue', 'Ä'=>'ae', 'Ö'=>'oe', 'Ü'=>'ue', 'ß' => 'ss' ) ); $encoded = chunk_split( base64_encode( $file_content ) ); $boundary = 'SENDeMAIL_'. md5( uniqid( mt_rand(), TRUE ) ); $header = "From: ". $from ."\n". "Reply-to: ". $_POST['absender_email'] ."\n". "X-Mailer: PHP ". phpversion() ."\n". "MIME-Version: 1.0\n". "Content-Type: multipart/mixed; boundary=\"". $boundary ."\";"; $body ="This is a multi-part message in MIME format.\n --". $boundary ." Content-Type: text/plain; charset=\"iso-8859-15\" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline\n Über das Formular wurde folgende eMail generiert: Name: ". $_POST['absender_name'] ." eMail: ". $_POST['absender_email'] ." Anfrage: ". $_POST['absender_text'] ." --". $boundary ." Content-Type: ". $_FILES['absender_datei']['type'] ."; name=\"". $_FILES['absender_datei']['name'] ."\"; Content-Transfer-Encoding: base64 Content-Disposition: attachment ". $encoded ." --". $boundary ."--"; } else { // Keine Datei ... $header = "From: ". $from ."\n". "Reply-to: ". $_POST['absender_email'] ."\n". "Content-Type: text/plain; charset=\"iso-8859-15\"\n". "Content-Transfer-Encoding: quoted-printable\n". "X-Mailer: PHP ". phpversion(); $body = "Über das Formular wurde folgende eMail generiert:\n". "Name: ". $_POST['absender_name'] . "\neMail: ". $_POST['absender_email'] . "\nAnfrage: ". $_POST['absender_text'] ; } $check_send = mail( $to, $_POST['absender_betreff'], $body, $header ); if ( $check_send === FALSE ) { echo 'eMail konnte nicht versendet werden. Bitte versuchen Sie es zu einem'. ' späteren Zeitpunkt nocheinmal.\nVielen Dank für Ihr Verständnis!'; } else { echo 'Vielen Dank für die Nachricht!'; } } } echo html_foot(); // gepufferte Ausgaben anzeigen und Pufferung ausschalten ob_end_flush(); /* * Funktionen */ /* * HTML-Formular */ function kontakt_output( $extension ) { $name = ( empty($_POST['absender_name']) ) ? '' : $_POST['absender_name'] ; $email = ( empty($_POST['absender_email']) ) ? '' : $_POST['absender_email'] ; $betreff = ( empty($_POST['absender_betreff']) ) ? '' : $_POST['absender_betreff'] ; $text = ( empty($_POST['absender_text']) ) ? 'Ihre Angaben'. ' bitte hier eintragen.' : $_POST['absender_text'] ; $ausgabe = '
'. '

Formular

'. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. '
Name:
eMail-Adresse:
Betreff:
Anfrage:
Datei hochladen: (*)
 
(*) Datei darf max 2 MB groß sein. Folgende Dateien können hochgeladen werden:
'. implode( ', ', $extension ) .'
'; return $ausgabe; } /* * Prüft, ob eine korrekte eMail-Adresse übergeben wurde */ function check_email( $email ) { if( checkdnsrr( array_pop( explode( '@', $email ) ), 'MX' ) ) { return TRUE; } else { return FALSE; } } /* * Prüfung, ob der Mime-Typ stimmt */ function check_mime( &$err_msg, $mime ) { // ist safe-mode = on? if ( ini_get( 'safe_mode' ) ) { $check_mime = $_FILES['absender_datei']['type']; } else { if ( !function_exists( 'mime_content_type' ) ) { function mime_content_type( $datei ) { $f = escapeshellarg( $datei ); return trim( `file -bi $datei` ); } } $check_mime = mime_content_type( $_FILES['absender_datei']['tmp_name'] ); } if ( array_search( $check_mime, $mime ) === FALSE ) { $err_msg[] = 'Diese Datei darf nicht hochgeladen werden.'; return FALSE; } return array( TRUE, $check_mime ); } /* * Prüft, ob ein Fehler beim Upload aufgetreten ist ($_FILES['absender_datei']['error']) */ function check_upload( &$err_msg ) { switch( $_FILES['absender_datei']['error'] ) { case UPLOAD_ERR_OK: //Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen. return 0; break; case UPLOAD_ERR_INI_SIZE: $err_msg[] = 'Die hochgeladene Datei überschreitet die in der Anweisung'. 'upload_max_filesize in php.ini festgelegte Größe.'; break; case UPLOAD_ERR_FORM_SIZE: $err_msg[] = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels'. 'der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break; case UPLOAD_ERR_PARTIAL: $err_msg[] = 'Die Datei wurde nur teilweise hochgeladen.'; break; case UPLOAD_ERR_NO_FILE: return 0; } return $err_msg; } function html_head() { return ' Formular '."\n"; } function html_foot() { return "\n"; } ?>