Fehlermeldungen hervorheben
Bernhard unreg
- php
Hallo!
Ich habe eine Idee, finde aber nichts hilfreiches für die Umsetztung (in Inet, Forem etc.). Und zwar habe ich ein Email-Formular, das beim absenden mit leerstehenden Feldern eine Fehlermeldung oberhalb des Formulars anzeigt. Soweit alles ok. Ich möchte aber diese Fehlermeldung farbig hervorheben; mit rotem Text und anderer Hintergrundfarbe.
Hier der Code-Abschnitt der für die Fehlermeldung zuständig ist:
if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="") $err_text.="Bitte gib Deine E-Mail-Adresse an. Hast Du keine E-Mail-Adresse, gib bitte „beispiel@email“ an.<br>";
else
if(!ereg("[1]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,6})$",
$from_mail)) $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";
if(strlen($mail_text)>1000) {
$mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);
if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}
if(($send!="1") || (isset($err_text)))
{
Gruß, Bernhard
_a-z0-9- ↩︎
Hi,
Hier der Code-Abschnitt der für die Fehlermeldung zuständig ist:
if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="") $err_text.="Bitte gib Deine E-Mail-Adresse an. Hast Du keine E-Mail-Adresse, gib bitte „beispiel@email“ an.<br>";
dieses Datenmodell ist extrem ungünstig. Speichere erkannte Fehler _nicht_ in einem einzigen String, schon gar nicht in Form eines Fehlertextes.
Cheatah
Hi!
Ich möchte aber diese Fehlermeldung farbig hervorheben; mit rotem Text und anderer Hintergrundfarbe.
Das ist aber kein PHP-Problem, sondern eine Sache, wofür CSS zuständig ist.
if(($send=="1") && (isset($err_text))) {
echo "<p><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}
Warum nicht so?
echo "<p class=\"fehler\">Fehler:<br>\n";
echo "$err_text</p>";
und dann im Stylesheet:
.fehler {
font-weight: bold;
font-size: 1.5em;
background-color: #was_auch_immer;
color: #was_auch_immer;
}
Naja und zu deinem PHP-Code hat Cheatah dir ja bereits was geschrieben.
Schöner Gruß,
rob
Ich wuerde den HTML Code ja noch mit Formatierungen versehen. Beschaeftige dich doch mal mit CSS.
Hey, ihr seid klasse! Es funktioniert! Vielen Dank für eure Tips.
@Cheatah: Klar. Man kann's auch umständlicher machen. Ich weiß auch wie. Aber wenn's doch funktioniert, wo ist dann das Problem? :-)