PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Kontaktformular php ohne Fehler aber keine Mails
Beitrag
<blockquote data-quote="Mtzlr" data-source="post: 1367499" data-attributes="member: 408155"><p>Hi, I need HEELLLPP !! Please:uhm:</p><p></p><p></p><p>Ich habe ein PHP Kontaktformular welches auch (ohne Fehler) funktioniert :lol:</p><p></p><p>PROBLEM .... ich erhalte keine Mail !! Host Provider Strato alle Einstellung die zum Erhalt notwendig sind wurden getätigt.</p><p></p><p>Da mir das Script keine Fehlermeldung ausgibt, bin ich verzweifelt am suchen und wahrscheinlich seh ich schon den Wald vor lauter Bäumen nicht mehr :lol:</p><p></p><p></p><p>Vielleicht könntet ihr euch den Code mal überfliegen ( in der Hoffnung ihr seht den Fehler ) bitte bitte</p><p></p><p></p><p></p><p>Hier der Code:</p><p></p><p>[PHP]<?php</p><p></p><p> error_reporting(E_ALL);</p><p></p><p> define('ERROR_1', 'Ihre E-Mailadresse ist nicht vorhanden.');</p><p> define('ERROR_2', 'Ihre E-Mailadresse ist ungültig.');</p><p> define('ERROR_3', 'Ohne Mitteilung kein Kontakt.');</p><p> define('ERROR_4', 'Sie haben keinen Familiennamen angegeben.');</p><p> define('ERROR_5', 'Sie haben keinen Vornamen angegeben.');</p><p> define('ERROR_6', 'Ein leeres Formular nützt nichts.');</p><p> define('ERROR_7', 'Die ausgewählte Datei ist zu groß.');</p><p> define('ERROR_8', 'Die ausgewählte Datei hat nicht den erlaubten Dateitype');</p><p></p><p></p><p> define('ACTION_PATH', 'emailok.php');</p><p></p><p> // E-Mailadresse</p><p> define('MAIL_SENDER', 'kontakt@woeshingehensoll.de');</p><p> //Mail Betreff-Texte</p><p> define('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular');</p><p> // Mail-Betreff für User</p><p> define('MAIL_SUBJECT_K','Ihre Kontaktmitteilung');</p><p> // Charset für E-Mailinhalt</p><p> define('MAILCHARSET', 'utf-8'); # oder z.B. iso-8859-1</p><p> // Starttext für Webmastermail</p><p> define('STARTTEXT',"Mitteilung vom Webformular:\n\r"); # wichtig hier die " belassen!</p><p> // mail Kopie an User und Aktivierung der Checkbox für Mailkopie</p><p> define('MAIL_KOPIE', 1);</p><p> // OPTIONAL - ermöglicht einen Dateiupload</p><p> define('FILE_UPLOAD', 1);</p><p> // dateigröße für Dateiupload</p><p> define('FILE_SIZE', 5000000);</p><p></p><p> // absoluter path für das speichern der hochzuladenden Datei</p><p> // die Variable $_SERVER['DOCUMENT_ROOT'] ist das Hauptrootverzeichnis des <a itxtdid="17472199" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">Server</a></p><p> // ergänze nun das Verzeichnis, in welches die Dateien gespeichert werden und</p><p> // hänge an das Ende ein / (Beispiel: $_SERVER['DOCUMENT_ROOT'] .'/images/</p><p> define('FILE_SAVE_PATH', $_SERVER['DOCUMENT_ROOT'] .'/images/');</p><p></p><p> define('ENCTYPE', ' enctype="multipart/form-data"');</p><p></p><p> // Seitenangabe, auf welche Seite bei erfolgreicher Übermittlung weitergeleitet werden soll</p><p> define('LOCATION', $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!</p><p></p><p> // %s stehen für einen Platzhalter und gleichzeitig als String</p><p> $USER_MAIL_TEXT = "Sehr geehrte/r %s %s %s,\n\n\r";</p><p> $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";</p><p> $USER_MAIL_TEXT .= "Mitteilung:\r\n\t%s";</p><p> if(FILE_UPLOAD) { $USER_MAIL_TEXT .= "\r\n\n\tDateiname: %s"; }</p><p> $USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";</p><p></p><p></p><p> // wenn die Liste erweitert werden muss einfach ein , und dann die nächstfolgende</p><p> // Zahl. Bsp: , 4 => 'irgendwas'</p><p> // ); muss immer vorhanden sein</p><p> $htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => '<a itxtdid="17472129" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">Firma</a>');</p><p></p><p> // array mit mimeTypen für ein Dateiupload wie in diesem Beispiel mit image.</p><p> // das Array kann beliebig erweitert werden. Wichtig ist nur, dass die Typen entsprechend</p><p> // deklariert werden.</p><p> $fileTypes = array('image/jpeg', 'image/jpg', 'image/png', 'image/gif');</p><p></p><p></p><p></p><p> /**</p><p> * function _gp($var)</p><p> *</p><p> * @param int/string $var</p><p> * @return int/string</p><p> */</p><p> function _gp($var) {</p><p> if(isset($var)) {</p><p></p><p> $val = isset($_POST[$var]) ? $_POST[$var] : '';</p><p></p><p> return trim($val);</p><p></p><p> }</p><p> }</p><p></p><p> /**</p><p> * function _selectAddress($htmlAddress, $select)</p><p> *</p><p> * @param array $htmlAddress</p><p> * @param string $select</p><p> * @return string</p><p> */</p><p> function _selectAddress($htmlAddress, $select) {</p><p></p><p> if(is_array($htmlAddress)) {</p><p></p><p> $ret = '';</p><p></p><p> foreach($htmlAddress AS $k => $v) {</p><p></p><p> if(isset($select) && $select == $k) { $selected = ' selected="selected"'; }</p><p> else { $selected = ''; }</p><p></p><p> $ret .= "<option value=\"$k\"$selected>$v</option>\n";</p><p> }</p><p></p><p> return print $ret;</p><p> } else {</p><p></p><p> return print 'Es wurde keine Anrede definiert.';</p><p></p><p> }</p><p></p><p> return print $ret;</p><p></p><p> }</p><p></p><p> /**</p><p> * function _E($int)</p><p> *</p><p> * @param integer $int</p><p> * @return string</p><p> */</p><p> function _E($int) {</p><p> $array = array( 1 => ERROR_1,</p><p> 2 => ERROR_2,</p><p> 3 => ERROR_3,</p><p> 4 => ERROR_4,</p><p> 5 => ERROR_5,</p><p> 6 => ERROR_6,</p><p> 7 => ERROR_7,</p><p> 8 => ERROR_8</p><p> );</p><p></p><p> if($array[$int]) return $array[$int];</p><p> }</p><p></p><p> /**</p><p> * function checkMail($mailAdresse)</p><p> *</p><p> * @param string $mailAdresse</p><p> * @return boolean</p><p> */</p><p> function checkMail($mailAdresse) {</p><p> if(isset($mailAdresse)) {</p><p></p><p> // Prüft auf PHP-Version</p><p> if(phpversion() >= '5.2.0') {</p><p> // prüft per filter_var und Parameter FILTER_VALIDATE_EMAIL</p><p> if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL)) { return 2; }</p><p> return false;</p><p> } else {</p><p> // Prüft ob E-Mailadresse ungültig</p><p> if(preg_match('/^[^\s@<>]+@[^\s@<>]+\.[a-z]{2,4}$/', $mailAdresse)) { return 2; }</p><p> return false;</p><p> }</p><p> } else {</p><p></p><p> return 1;</p><p></p><p> }</p><p> }</p><p></p><p> /**</p><p> * checkFile($file)</p><p> *</p><p> * @param array $file</p><p> * @param array $types</p><p> * @return boolean</p><p> */</p><p> function checkFile($file, $types = array()) {</p><p></p><p> if( isset($file['tmp_name']) && $file['tmp_name'] != '' &&</p><p> isset($file['name']) && $file['name'] != '') {</p><p></p><p> $size = $file['size'];</p><p> $type = $file['type'];</p><p></p><p></p><p> if($size > FILE_SIZE) { return 7; }</p><p> elseif(isset($types) && !in_array($type, $types)) { return 8; }</p><p> else { return false; }</p><p> }</p><p> }</p><p></p><p> /**</p><p> * function fileUpload($file)</p><p> *</p><p> * @param array $file</p><p> * @param integer $action wird zur prüfung auf Fehler verwendet.</p><p> * 1 prüft auf Fehler</p><p> * 2 erlaubt den Dateiupload</p><p> * @return array $array</p><p> */</p><p> function fileUpload($file = array()) {</p><p> if(isset($file['tmp_name']) && isset($file['name'])) {</p><p></p><p> $tmp = $file['tmp_name'];</p><p> $name = $file['name'];</p><p> $type = $file['type'];</p><p></p><p> $dateiendung = preg_replace('#[a-z+]+/#i', '', $type);</p><p> $filename = date('d_m_Y').'_'. time() .'.'. $dateiendung;</p><p></p><p> if(move_uploaded_file($tmp, FILE_SAVE_PATH . $filename)) {</p><p></p><p> $array = array(0 => $filename, 1 => $name);</p><p> return $array;</p><p></p><p> }</p><p> } else {</p><p> return;</p><p> }</p><p> }</p><p></p><p> $textmitteilung = ''; // Variable indiziert</p><p> $error_a = 0;</p><p> $checkedKopie = '';</p><p> $fileName = '';</p><p> $m_anrede = _gp('anrede');</p><p></p><p> if(intval(_gp('action')) == 1) {</p><p></p><p> // Prüft, ob die E-Mail-Adresse angegeben wurde.</p><p> if($m_email = _gp('email')) {</p><p> $error_a = checkMail($m_email);</p><p> } else {</p><p> $error_a = 1;</p><p> }</p><p></p><p> // Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.</p><p> if(!$m_mitteilung = _gp('mitteilung')) { $error_a = 3; }</p><p></p><p></p><p> // Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.</p><p> if(!$m_fname = _gp('fname')) { $error_a = 4; }</p><p></p><p> // Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung</p><p> if(!$m_vorname = _gp('vorname')) { $error_a = 5; }</p><p></p><p> // prüft ob die Uploaddatei erlaubt ist</p><p> if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 7) { $error_a = 7; }</p><p> if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 8) { $error_a = 8; }</p><p></p><p> // prüfe ob User Mailkopie wünscht</p><p> if($mailKopie = _gp('kopie') == 1) { $checkedKopie = ' checked="checked"'; }</p><p></p><p> // Prüft, ob eine Anrede ausgewählt wurde, wenn nicht</p><p> if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }</p><p></p><p></p><p> // Prüft, ob eine Strasse angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if(!$m_strasse = _gp('strasse')) { $m_strasse = ''; }</p><p></p><p> // Prüft, ob die Hausnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if(!$m_hausnummer = _gp('hausnummer')) { $m_hausnummer = ''; }</p><p></p><p> // Prüft, ob eine PLZ angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if(!$m_plz = _gp('plz')) { $m_plz = ''; }</p><p></p><p> // Prüft, ob ein Wohnort angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if(!$m_ort = _gp('ort')) { $m_ort = ''; }</p><p></p><p> // Prüft, ob eine Vorwahl angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if(!$m_vw = _gp('vw')) { $m_vw = ''; }</p><p></p><p> // Prüft, ob die Rufnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.</p><p> if($m_rn = _gp('rn')) { $m_rn = ' / '. $m_rn; }</p><p></p><p> // Prüft, ob alle Pflichtfelder vorhanden sind.</p><p> if(!$error_a) {</p><p></p><p> $fileNameAdmin = '';</p><p> $fileNameUser = '';</p><p></p><p> if(FILE_UPLOAD && is_array($_FILES['file'])) {</p><p></p><p> $fileName = fileUpload($_FILES['file']);</p><p></p><p> $fileNameAdmin = $fileName[0];</p><p></p><p> $fileNameUser = $fileName[1];</p><p></p><p> }</p><p></p><p> // Mailbedingungen in From von MIME und HTML</p><p> $header = 'MIME-Version: 1.0'."\r\n";</p><p> $header .= 'Content-type: text/html; charset='. MAILCHARSET ."\r\n";</p><p> $header .= 'From: <'. MAIL_SENDER .'>';</p><p></p><p> if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }</p><p> else { $anrede = ''; }</p><p></p><p> // Mitteilungstext für den Empfänger</p><p> $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",</p><p> STARTTEXT,</p><p> $anrede,</p><p> $m_vorname,</p><p> $m_fname,</p><p> $m_strasse,</p><p> $m_hausnummer,</p><p> $m_plz,</p><p> $m_ort,</p><p> $m_vw,</p><p> $m_rn,</p><p> $m_email,</p><p> $m_mitteilung,</p><p> $fileNameAdmin,</p><p> date('d.m.Y, H:i:s'));</p><p></p><p> // E-Mail an Seiteninhaber wird gesendet.</p><p> mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);</p><p></p><p> // Bestätigungsmail an Absender</p><p> if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) {</p><p></p><p> // Textzusammenstellung für den Absender</p><p> $msgUser = sprintf( $USER_MAIL_TEXT,</p><p> $anrede,</p><p> $m_vorname,</p><p> $m_fname,</p><p> $m_strasse,</p><p> $m_hausnummer,</p><p> $m_plz,</p><p> $m_ort,</p><p> $m_vw,</p><p> $m_rn,</p><p> $m_email,</p><p> $m_mitteilung,</p><p> $fileNameUser);</p><p></p><p></p><p> // Senden der Bestätigungsmail an den Formularausfüllenden.</p><p> mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);</p><p></p><p> }</p><p></p><p> // Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.</p><p> header('Location: '/emailok.php);</p><p> exit();</p><p> }</p><p> }</p><p> ?></p><p></p><p>/* ------------- IM BODYBEREICH -----------------</p><p></p><p> <?php</p><p> // Bereich für Fehlerausgabe</p><p> if((int)$error_a) {</p><p></p><p> echo '<p align="center" class="error">'. _E($error_a) .'</p>';</p><p> }</p><p> ?></p><p></p><p> <form action="emailok.php" method="post"<?php echo ENCTYPE; ?>></p><p> <input type="hidden" name="action" value="1" /></p><p> <table width="70%" cellspacing="2" cellpadding="5" border="0"></p><p> <tr></p><p> <td colspan="2"><p align="center"><b><h2>Kontakt</h2></b></p><p align="right">* = Pflichtfelder (werden geprüft)</td></p><p> </tr><tr></p><p> <td>Anrede</td></p><p> <td><select name="anrede"></p><p> <?php</p><p> _selectAddress($htmlAddress, $m_anrede);</p><p> ?></p><p> </select></p><p> </td></p><p> </tr><tr></p><p> <td>*Vorname</td></p><p> <td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td></p><p> </tr><tr></p><p> <td>*Name</td></p><p> <td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td></p><p> </tr><tr></p><p> <td>*Strasse / Haus.-Nr. </td></p><p> <td></p><p> <input type="text" name="strasse" size="40" maxlength="100" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>" /></p><p> <input type="text" name="hausnummer" size="5" maxlength="8" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>" /></p><p> </td></p><p> </tr><tr></p><p> <td>*PLZ / Wohnort </td></p><p> <td></p><p> <input type="text" name="plz" size="5" maxlength="5" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" /></p><p> <input type="text" name="ort" size="40" maxlength="100" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" /></p><p> </td></p><p> </tr><tr></p><p> <td>*Telefon</td></p><p> <td></p><p> <input type="text" name="vw" size="10" maxlength="5" value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" /> /</p><p> <input type="text" name="rn" size="10" maxlength="15" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" /></p><p> </td></p><p> </tr><tr></p><p> <td>*Ihre E-Mailadresse</td></p><p> <td></p><p> <input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" /></p><p> </td></p><p> </tr><tr></p><p> <td valign="top">*Mitteilung</td></p><p> <td></p><p> <textarea name="mitteilung" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?></textarea></p><p> </td></p><p> </tr></p><p> <?php</p><p> if(MAIL_KOPIE === 1) {</p><p> ?></p><p> <tr></p><p> <td>Wünschen Sie eine Kopie</td></p><p> <td><input type="checkbox" value="1" name="kopie"<?php echo $checkedKopie; ?> /></td></p><p> </tr></p><p> <?php</p><p> }</p><p> if(FILE_UPLOAD === 1) {</p><p> ?></p><p> <tr></p><p> <td>Datei anhängen</td></p><p> <td><input type="file" size="50" name="file" /></td></p><p> </tr></p><p> <?php } ?></p><p> <tr></p><p> <td colspan="2"></p><p> <p align="center"><input type="submit" value="Mittelung senden" /></p></p><p> </td></p><p> </tr></p><p> </table></p><p> </form>[/PHP]</p><p></p><p></p><p>Wäre echt cool wenn ihr den Fehler findet damit dann auch endlich mal ne mail ankommt ...... das wäre super <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p></blockquote><p></p>
[QUOTE="Mtzlr, post: 1367499, member: 408155"] Hi, I need HEELLLPP !! Please:uhm: Ich habe ein PHP Kontaktformular welches auch (ohne Fehler) funktioniert :lol: PROBLEM .... ich erhalte keine Mail !! Host Provider Strato alle Einstellung die zum Erhalt notwendig sind wurden getätigt. Da mir das Script keine Fehlermeldung ausgibt, bin ich verzweifelt am suchen und wahrscheinlich seh ich schon den Wald vor lauter Bäumen nicht mehr :lol: Vielleicht könntet ihr euch den Code mal überfliegen ( in der Hoffnung ihr seht den Fehler ) bitte bitte Hier der Code: [PHP]<?php error_reporting(E_ALL); 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'); define('ACTION_PATH', 'emailok.php'); // E-Mailadresse define('MAIL_SENDER', 'kontakt@woeshingehensoll.de'); //Mail Betreff-Texte define('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular'); // Mail-Betreff für User define('MAIL_SUBJECT_K','Ihre Kontaktmitteilung'); // Charset für E-Mailinhalt define('MAILCHARSET', 'utf-8'); # oder z.B. iso-8859-1 // Starttext für Webmastermail define('STARTTEXT',"Mitteilung vom Webformular:\n\r"); # wichtig hier die " belassen! // mail Kopie an User und Aktivierung der Checkbox für Mailkopie define('MAIL_KOPIE', 1); // OPTIONAL - ermöglicht einen Dateiupload define('FILE_UPLOAD', 1); // dateigröße für Dateiupload define('FILE_SIZE', 5000000); // absoluter path für das speichern der hochzuladenden Datei // die Variable $_SERVER['DOCUMENT_ROOT'] ist das Hauptrootverzeichnis des <a itxtdid="17472199" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">Server</a> // ergänze nun das Verzeichnis, in welches die Dateien gespeichert werden und // hänge an das Ende ein / (Beispiel: $_SERVER['DOCUMENT_ROOT'] .'/images/ define('FILE_SAVE_PATH', $_SERVER['DOCUMENT_ROOT'] .'/images/'); define('ENCTYPE', ' enctype="multipart/form-data"'); // 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"; if(FILE_UPLOAD) { $USER_MAIL_TEXT .= "\r\n\n\tDateiname: %s"; } $USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir."; // wenn die Liste erweitert werden muss einfach ein , und dann die nächstfolgende // Zahl. Bsp: , 4 => 'irgendwas' // ); muss immer vorhanden sein $htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => '<a itxtdid="17472129" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">Firma</a>'); // array mit mimeTypen für ein Dateiupload wie in diesem Beispiel mit image. // das Array kann beliebig erweitert werden. Wichtig ist nur, dass die Typen entsprechend // deklariert werden. $fileTypes = array('image/jpeg', 'image/jpg', 'image/png', 'image/gif'); /** * 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; } } } /** * function fileUpload($file) * * @param array $file * @param integer $action wird zur prüfung auf Fehler verwendet. * 1 prüft auf Fehler * 2 erlaubt den Dateiupload * @return array $array */ function fileUpload($file = array()) { if(isset($file['tmp_name']) && isset($file['name'])) { $tmp = $file['tmp_name']; $name = $file['name']; $type = $file['type']; $dateiendung = preg_replace('#[a-z+]+/#i', '', $type); $filename = date('d_m_Y').'_'. time() .'.'. $dateiendung; if(move_uploaded_file($tmp, FILE_SAVE_PATH . $filename)) { $array = array(0 => $filename, 1 => $name); return $array; } } else { return; } } $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üft ob die Uploaddatei erlaubt ist if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 7) { $error_a = 7; } if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 8) { $error_a = 8; } // 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 = ''; if(FILE_UPLOAD && is_array($_FILES['file'])) { $fileName = fileUpload($_FILES['file']); $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 Empfänger $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: '/emailok.php); exit(); } } ?> /* ------------- IM BODYBEREICH ----------------- <?php // Bereich für Fehlerausgabe if((int)$error_a) { echo '<p align="center" class="error">'. _E($error_a) .'</p>'; } ?> <form action="emailok.php" method="post"<?php echo ENCTYPE; ?>> <input type="hidden" name="action" value="1" /> <table width="70%" cellspacing="2" cellpadding="5" border="0"> <tr> <td colspan="2"><p align="center"><b><h2>Kontakt</h2></b></p><p align="right">* = Pflichtfelder (werden geprüft)</td> </tr><tr> <td>Anrede</td> <td><select name="anrede"> <?php _selectAddress($htmlAddress, $m_anrede); ?> </select> </td> </tr><tr> <td>*Vorname</td> <td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td> </tr><tr> <td>*Name</td> <td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td> </tr><tr> <td>*Strasse / Haus.-Nr. </td> <td> <input type="text" name="strasse" size="40" maxlength="100" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>" /> <input type="text" name="hausnummer" size="5" maxlength="8" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>" /> </td> </tr><tr> <td>*PLZ / Wohnort </td> <td> <input type="text" name="plz" size="5" maxlength="5" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" /> <input type="text" name="ort" size="40" maxlength="100" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" /> </td> </tr><tr> <td>*Telefon</td> <td> <input type="text" name="vw" size="10" maxlength="5" value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" /> / <input type="text" name="rn" size="10" maxlength="15" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" /> </td> </tr><tr> <td>*Ihre E-Mailadresse</td> <td> <input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" /> </td> </tr><tr> <td valign="top">*Mitteilung</td> <td> <textarea name="mitteilung" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?></textarea> </td> </tr> <?php if(MAIL_KOPIE === 1) { ?> <tr> <td>Wünschen Sie eine Kopie</td> <td><input type="checkbox" value="1" name="kopie"<?php echo $checkedKopie; ?> /></td> </tr> <?php } if(FILE_UPLOAD === 1) { ?> <tr> <td>Datei anhängen</td> <td><input type="file" size="50" name="file" /></td> </tr> <?php } ?> <tr> <td colspan="2"> <p align="center"><input type="submit" value="Mittelung senden" /></p> </td> </tr> </table> </form>[/PHP] Wäre echt cool wenn ihr den Fehler findet damit dann auch endlich mal ne mail ankommt ...... das wäre super ;) [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Kontaktformular php ohne Fehler aber keine Mails
Oben