Ich habe mit Hilfe eines PSD Tutorials versucht mit PHP ein Kontaktformualr zu erstellen.
Das Formular funktioniert auch, das Layout passt nur wenn ich nichts ausfülle wird trotzdem eine Mail verschickt an mich, allerdings steht dann hinter den einzelnen Feldern kein Inhalt aber ich wollte das er ohne die Pflichteingaben dann die entsprechende Fehlermeldung ausgibt. Nur es geht eben auch ohne Eingabe zu verschicken.
Ich habe die Kontaktformular.php in meine Kotankt.php mit include eingebunden nur ich wollte das die Fehlermeldungen dann neben den Feldern auf der Website angezeigt werden. Weiß jemand woran das liegen könnte?
Danke schonmal.
Hier mal der bisherige Code des Formulars:
Das Formular funktioniert auch, das Layout passt nur wenn ich nichts ausfülle wird trotzdem eine Mail verschickt an mich, allerdings steht dann hinter den einzelnen Feldern kein Inhalt aber ich wollte das er ohne die Pflichteingaben dann die entsprechende Fehlermeldung ausgibt. Nur es geht eben auch ohne Eingabe zu verschicken.
Ich habe die Kontaktformular.php in meine Kotankt.php mit include eingebunden nur ich wollte das die Fehlermeldungen dann neben den Feldern auf der Website angezeigt werden. Weiß jemand woran das liegen könnte?
Danke schonmal.
Hier mal der bisherige Code des Formulars:
PHP:
<?php
error_reporting(E_ALL);
define('ERROR_1', 'Sie haben keine Telefonnummer angegeben.');
define('ERROR_2', 'Ihre E-Mailadresse ist ungültig.');
define('ERROR_3', 'Ohne Mitteilung kein Kontakt.');
define('ERROR_4', 'Sie haben keinen Nachnamen angegeben.');
define('ERROR_5', 'Sie haben keinen Vornamen angegeben.');
define('ERROR_6', 'Bitte geben Sie eine Nachricht ein.');
define('ACTION_PATH', 'kontakt.php');
define('MAIL_SENDER', '.......@..............de');
define('MAIL_SUBJECT_A','Kontaktnachricht aus Formular');
define('MAIL_SUBJECT_K','Ihre Kontaktnachricht');
define('MAILCHARSET', 'utf-8');
define('STARTTEXT',"Nachricht vom Webformular:\n\r");
define('MAIL_KOPIE', 1);
define('ENCTYPE', ' enctype="multipart/form-data"');
define('LOCATION', $_SERVER['HTTP_HOST'] .'/mailok.php');
$USER_MAIL_TEXT = "Sehr geehrte/r %s %s %s,\n\n\r";
$USER_MAIL_TEXT .= "Ihre Nachrichtg hatte folgenden Inhalt:\r\n\n\tStrasse Haus-Nr.: %s %s\r\n\n\tPlz Ort: %s %s\r\n\tTelefon: %s %s\r\n\tMail: %s\r\n\n\t";
$USER_MAIL_TEXT .= "Nachricht:\r\n\t%s";
$USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";
$htmlAddress = array(0 => 'Firma', 1 => 'Frau', 2 => 'Herr');
function _gp($var) {
if(isset($var)) {
$val = isset($_POST[$var]) ? $_POST[$var] : '';
return trim($val);
}
}
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) {
$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) {
if(isset($mailAdresse)) {
if(phpversion() >= '5.2.0') {
if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL)) { return 2; }
return false;
} else {
if(preg_match('/^[^\s@<>]+@[^\s@<>]+\.[a-z]{2,4}$/', $mailAdresse)) { return 2; }
return false;
}
} else {
return 1;
}
}
$textnachricht = '';
$error_a = 0;
$checkedKopie = '';
$m_anrede = _gp('anrede');
if(intval(_gp('action')) == 1) {
if($m_mail = _gp('mail')) {
$error_a = checkMail($m_mail);
}
if($m_rn = _gp('rn')) { $error_a = 1; }
if(!$m_nachricht = _gp('nachricht')) { $error_a = 3; }
if(!$m_nname = _gp('nname')) { $error_a = 4; }
if(!$m_vorname = _gp('vorname')) { $error_a = 5; }
if($mailKopie = _gp('kopie') == 1) { $checkedKopie = ' checked="checked"'; }
if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }
if(!$m_strasse = _gp('strasse')) { $m_strasse = ''; }
if(!$m_hausnummer = _gp('hausnummer')) { $m_hausnummer = ''; }
if(!$m_plz = _gp('plz')) { $m_plz = ''; }
if(!$m_ort = _gp('ort')) { $m_ort = ''; }
if(!$m_vw = _gp('vw')) { $m_vw = ''; }
$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\rMail: %s\n\rNachricht:\n\n\r%s\r\n\nMitgeteilt am: %s",
STARTTEXT,
$anrede,
$m_vorname,
$m_nname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_mail,
$m_nachricht,
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_nname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_mail,
$m_nachricht);
// Senden der Bestätigungsmail an den Formularausfüllenden.
mail($m_mail, MAIL_SUBJECT_K, $msgUser, $header);
}
// Nun leite um auf die Empfangsbestätigungs-Seite mailok.php.
header('Location: '.LOCATION);
exit();
}
?>
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Kontaktformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
</style>
</head>
<body class="text">
<?php
// Bereich für Fehlerausgabe
if((int)$error_a) {
echo '<p align="center" class="error">'. _E($error_a) .'</p>';
}
?>
<form action="<?php echo ACTION_PATH; ?>" method="post"<?php echo ENCTYPE; ?>>
<input type="hidden" name="action" value="1" />
<table width="630px" cellspacing="0" cellpadding="0" border="0">
<tr>
<td style="padding-bottom:10px">Anrede *</td>
<td><select name="anrede" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e;">
<?php
_selectAddress($htmlAddress, $m_anrede);
?>
</select>
</td>
</tr><tr>
<td style="padding-bottom:10px">Vorname*</td>
<td><input type="text" name="vorname" size="40" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td>
</tr><tr>
<td style="padding-bottom:10px">Nachname*</td>
<td><input type="text" name="fname" size="40" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td>
</tr><tr>
<td style="padding-bottom:10px">Strasse / Haus-Nr.</td>
<td>
<input type="text" name="strasse" size="40" maxlength="100" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>" />
<input type="text" name="hausnummer" size="5" maxlength="8" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>" />
</td>
</tr><tr>
<td style="padding-bottom:10px">PLZ / Wohnort</td>
<td>
<input type="text" name="plz" size="5" maxlength="5" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" />
<input type="text" name="ort" size="40" maxlength="100" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" />
</td>
</tr><tr>
<td style="padding-bottom:10px">Telefon*</td>
<td>
<input type="text" name="vw" size="10" maxlength="5" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" /> /
<input type="text" name="rn" size="10" maxlength="15" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" />
</td>
</tr><tr>
<td style="padding-bottom:10px">Mail-Adresse</td>
<td>
<input type="text" name="mail" size="30" maxlength="50" style="background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e" value="<?php if(isset($_POST['mail'])) { echo $_POST['mail']; } ?>" />
</td>
</tr><tr>
<td valign="top" style="padding-bottom:10px">Nachricht*</td>
<td colspan="2">
<textarea name="nachricht" rows="10" style="width:322px; background:#CCC; border:1px solid #999; margin-bottom:10px; color:#3e3e3e"><?php if(isset($_POST['nachricht'])) { echo $_POST['nachricht']; } ?></textarea>
</td>
</tr>
<?php
if(MAIL_KOPIE === 1) {
?>
<tr>
<td>Kopie dieser Nachricht</td>
<td><input type="checkbox" value="1" style="background:#CCC; border:1px solid #999" name="kopie"<?php echo $checkedKopie; ?> /></td>
</tr>
<?php } ?>
<tr>
<td colspan="2">
<p align="center"><input type="submit" value="Nachricht senden" style="background:#CCC; color:#3e3e3e" /></p>
</td>
</tr>
<tr>
<td colspan="2"><p align="left">Mit * gekennzeichnete Felder müssen ausgefüllt werden.</td>
</tr>
</table>
</form>
</body>
</html>