In einem Formular sollen die input-Felder von den Pflichtfeldern andersfarbig werden, wenn nichts eingetragen ist. Und eine Fehlermeldung wird dann auch angezeigt...
Das klappt auch alles soweit ganz gut, ich habe es von diesem http://www.selfphp.de/kochbuch/kochbuch.php?code=20 Tutorial in meinen schon vorhandenen Code eingebunden. Nun aber 2 Dinge, die noch nicht funktionieren.
Zum einen, die Pflichtfelder-Klasse hat am Anfang nicht die InputField-Klasse, das heißt, das diese Felder anders aussehen wo bei
- Code: Alles auswählen
class="<?PHP echo $errorClass['message']; ?>"
Und zum anderen wird zwar die Fehlermeldung ausgeben, dass die Pflichtfelder ausgefüllt werden müssen, wenn das aber getan wurde, dann erscheint die Nachricht nicht, dass die Felder übermittelt wurden... Kann mir da vll jemand sagen, woran das liegt?
Hier mein Code:
- Code: Alles auswählen
<?php
$script = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];
$empfaenger = ".....";
$ip = getenv ("REMOTE_ADDR");
$betreff = '.....';
$arr_daten = array(
'Nachricht' => $_POST['message'],
'Firma' => $_POST['firma'],
'Ansprechpartner' => $_POST['ansprechpartner'],
'Straße' => $_POST['strasse'],
'PLZ Ort' => $_POST['plzort'],
'Telefon' => $_POST['telefon'],
'Fax' => $_POST['fax'],
'E-Mail' => $_POST['email'],
'Imagebroschüre' => $_POST['broschure'],
'Rückruf' => $_POST['rueckruf'],
);
$errorFields = array(
'message',
'ansprechpartner',
'strasse',
'plzort',
'email');
function checkEmail( $email )
{
$nonascii = "\x80-\xff";
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$pattern = "$user_part\@$domain_part";
if (!preg_match( "/^$pattern$/", $email ))
{
return FALSE;
}
else
{
return TRUE;
}
}
if($_REQUEST['senden'])
{
if ($_POST['email_address'] !== '') {
exit('<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
}
else {
for($x=0;$x<count($errorFields);$x++)
{
$errorClass[$errorFields[$x]] = 'inputField';
}
$error = FALSE;
foreach($errorFields as $key => $value)
{
if(empty($_POST[$errorFields[$key]]))
{
$error = TRUE;
$errorClass[$value] = 'errorField';
}
}
}
if($_GET['check'] == "TRUE")
{
$errorMessage = '<table width="100%" class="errorTable"><tr><td><b>
Vielen Dank!<br>Ihre Daten wurden weitergeleitet.</td></tr></table><br>';
}
if(isset($_POST['senden'])){
if($error == TRUE)
{
$errorMessage = '<table width="100%" class="errorTable"><tr><td>
</td><td><b>Achtung!</b><br>
Es ist zu einem Fehler gekommen. Bitte füllen Sie alle
farblich markierten Pflichtfelder aus.</td></tr></table><br>';
}
else
{
header("Location: $script?check=TRUE");
$header .= 'From:' .$email;
$nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";
foreach($arr_daten as $key_daten => $value_daten)
{ if(!empty($value_daten)) { $nachricht .= "$key_daten: $value_daten\n"; }}
$nachricht .= "IP: ".$ip."\n";
mail($empfaenger, $betreff, $nachricht, $header);
echo"<table width=\"300\" border=\"0\" class=\"yes\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td>Vielen Dank!<br />Wir werden uns umgehend bei Ihnen melden!<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></td></tr></table>";
}
} }
?>
Bin noch nicht so gut in php...
Liebe Grüße Denise