Antworten auf deine Fragen:
Neues Thema erstellen

Kontaktformular Fehlermeldung

Rozz_By

Noch nicht viel geschrieben

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:

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>
 

fakerer

Aktives Mitglied

AW: Kontaktformular Fehlermeldung

ob das mit deiner Fehlerausgabe ganz passt weis ich jetzt nicht aber du brauchst ne if abfrage vorm mailverschicken.
Wenn alles passt mail ansonst Fehlermeldung.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben