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:
Wäre echt cool wenn ihr den Fehler findet damit dann auch endlich mal ne mail ankommt ...... das wäre super
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>
Wäre echt cool wenn ihr den Fehler findet damit dann auch endlich mal ne mail ankommt ...... das wäre super
Zuletzt bearbeitet von einem Moderator: