[GastForen Programmierung/Entwicklung PHP und MySQL Anzeige der Fehlermeldung im Formular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Anzeige der Fehlermeldung im Formular

kareh
Beiträge gesamt: 239

13. Okt 2006, 23:32
Beitrag # 1 von 4
Bewertung:
(2239 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bin noch PHP-Anfänger, deshalb meine Anfrage.

Mein Formular funktioniert soweit korrekt. Die allgemeine Meldung, dass etwas bzw. was genau fehlt funktioniert auch. Diese Fehlermeldung wird im Moment oberhalb des gesamten Formularsangezeigt.
Die einzelne betreffende Fehlermeldung (ob Name oder z.B. E-Mail) würde ich gerne mittels CSS (veränderte(r) Rahmenfarbe und Hintergrund) in den jeweiligen Eingabefeldern kennzeichnen.

Diese sollten sich unabhängig voneinander, je nach Eingabe, als Fehlemeldung anzeigen bzw. nach korrekter Eingabe wieder mit normalem Rahmen und Hintergrund anzeigen.

Viellecht kann mir jemand helfen, wie ich mein nachfolgend aufgeführtes (möglicherweise dillethantisches) Formular verändern muss, um meine Vorstellung zu verwirklichen.

Code
<?php 
if ($_POST[senden]==1){

# --- Ausgabeübernahme ---
$anrede = $_POST['anrede'];
$name = $_POST['name'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$kopie = $_POST['kopie'];
$absender = $_POST['absender'];

# --- Mailadressen ---

# Empfänger Homepage
$mail_an="[email protected]";

# Schreiber
$mail_an2=$_POST['email'];

# --- Fehlerprüfung ---

# Einleitung Fehlermeldung
if($anrede=="-------" OR
!$name OR
!$vorname OR
!$email OR
!preg_match("/^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$/",$email) OR
!$betreff OR
!$nachricht) {echo '<font color="#EC0000"><b> Hier fehlt noch Ihre Angabe: </b></font><br>';unset($_POST[senden]);}

# Anrede
if($anrede=="-------") {echo '<font color="#EC0000">Anrede, </font>';unset($_POST[senden]);}

# Name
if(!$name) {echo '<font color="#EC0000">Ihr Name, </font>';}

# Vorname
if(!$vorname) {echo '<font color="#EC0000">Ihr Vorname, </font>';unset($_POST[senden]);}

# E-Mail
if(!$email) {echo '<font color="#EC0000">Ihre E-Mail-Adresse, </font>';unset($_POST[senden]);}
else
if(!preg_match("/^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$/",$email))
{echo '<font color="#EC0000">diese E-Mail-Adresse ist ungültig, </font>';unset($_POST[senden]);}

# Betreff
if(!$betreff) {echo '<font color="#EC0000">Betreff, </font>';unset($_POST[senden]);}

# Nachricht
if(!$nachricht) {echo '<font color="#EC0000">Ihre Nachricht</font>';unset($_POST[senden]);}

# --- Mailinhalte ---

# an Empfänger Homepage
$text ="\n Eine Nachricht über die Homepage\n
_________________________________________________\n
Vorname: $vorname
Nachname: $name
Telefon: $telefon
E-Mail: $email
_________________________________________________\n
>>> gesendete Nachricht:\n
$nachricht";

# an Schreiber
$text2 ="\n Guten Tag $anrede $name,\n nachfolgend die Kopie Ihrer Nachricht\n
_______________________________________________________\n
>>> gesendete Nachricht:\n
$nachricht\n
_______________________________________________________\n";
}

if(!$_POST[senden])
{
?>
<style type="text/css">
<!--
body,td,th {font-family: Arial, Verdana, Tahoma;font-size: 12px;color: #000000;}
body {margin: 0px;}
-->
</style>
<link href="../css/kontaktformular.css" rel="stylesheet" type="text/css">
<form name="formular" action="<?php echo $PHP_SELF ?>" method="post">
<table width="460" border="0" cellpadding=0 cellspacing=0>
<tr align="left" valign="middle">
<td width="150">Pflichtfelder <strong>*</strong> </td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305">&nbsp;</td>
</tr>
<tr align="left" valign="middle">
<td width="150"><strong>Anrede: *</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><select name="anrede" class="checkbox">
<option>-------</option>
<option value="Herr"<?php print(("Herr"==$anrede)?"selected":"")?>>Herr</option>
<option value="Frau"<?php print(("Frau"==$anrede)?"selected":"")?>>Frau</option>
</select></td>
</tr>
<tr align="left" valign="middle">
<td width="150"><strong>Ihr Name: *</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><input class="inputtext" name="name" type="text" value="<?php print $name; ?>"></td>
</tr>
<tr align="left" valign="middle">
<td width="150" class=""><strong>Ihr Vorname: *</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><input class="inputtext" name="vorname" type="text" value="<?php print $vorname; ?>"></td>
</tr>
<tr align="left" valign="middle">
<td width="150"><strong>Ihre E-Mail-Adresse: * </strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><input class="inputtext" name="email" type="text" value="<?php print $email; ?>">
</td>
<tr align="left" valign="middle">
<td width="150"><strong>Ihre Telefonnummer:</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><input class="inputtext" name="telefon" type="text" value="<?php print $telefon; ?>">
</td>
<tr align="left" valign="middle">
<td width="150"><strong>Betreff: *</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305"><input class="inputtext" name="betreff" type="text" value="<?php echo $betreff; ?>">
</td>
<tr align="left">
<td width="150" valign="top"><strong>Ihre Nachricht: *</strong></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="100"></td>
<td width="305"><textarea class="inputtextarea" name="nachricht"><?php print $nachricht; ?></textarea>
</td>
</tr>
<tr align="left">
<td width="150"><img src="../img/trans.gif" alt="tr" width="10" height="20"></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="24"></td>
<td width="305" height="20" valign="middle"><input name="kopie" type="checkbox" class="checkbox" value="ja" <?php print (("ja"==$kopie)?" checked":"") ?>>
Kopie an Ihre Adresse</td>
</tr>
<tr align="left">
<td width="150"><input type="hidden" value="Homepage" name="absender"></td>
<td width="5"><img src="../img/trans.gif" alt="tr" width="2" height="23"></td>
<td width="305"0><input type="hidden" value="1" name="senden">
<input class="inputbutton" type="submit" value="Nachricht senden" name="abschicken">
<input class="inputbutton2" type="reset" value="L&ouml;schen" name="loeschen"></td>
</tr>
</table>
</form>
<?php
# --- Funktion Mailzustellung ---
} else {
# an Empfänger Homepage
$mail_kopf="From: $vorname $name <$email>\n";
$mail_kopf.="Reply-To: $email\n";
$mail_kopf.="Content-Type: text/plain";
# an den Schreiber
$mail_kopf2="From: $absender <$mail_an>\n";
$mail_kopf2.="Reply-To: $mail_an\n";
$mail_kopf2.="Content-Type: text/plain";

if($senden="1"){
if (mail($mail_an,$betreff,$text,"$mail_kopf"))
{
if ($kopie == "ja" AND $anrede == "Herr") {
mail($mail_an2,$betreff,$text2,"$mail_kopf2");
}
if ($kopie == "ja" AND $anrede == "Frau") {
mail($mail_an2,$betreff,$text2,"$mail_kopf2");
}
echo "<b><br><br>Vielen Dank für Ihre Mitteilung $anrede $name, <br><br>
Wir werden Ihre Nachricht umgehend bearbeiten. </b>";
}else{
echo "<br>Beim Versenden der E-Mail ist ein Fehler aufgetreten!<br>";
}
}
}
?>


Ich bedanke schon mal für jeden Tipp!
------------------------------------------------------------------
Gruß Karin
(Benutze DW CS3, Firefox 32.0.1, Windows 7)
X

Anzeige der Fehlermeldung im Formular

ganesh
Beiträge gesamt: 1981

14. Okt 2006, 04:51
Beitrag # 2 von 4
Beitrag ID: #256487
Bewertung:
(2227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
allgemeiner Tipp:

statt <?php print $vorname; ?>
kannst du auch <?=$vorname?> verwenden (Kurzform)

Schau mal nach bzgl. "heredoc" Syntax für Texte mit mehreren Zeilen:
http://ch2.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc
(d.h. bei dir konkret für die Email-Nachricht)


Dann zur eigentlichen Frage:

Erstelle pro Input Feld zwei Klassen: eine für default (keine Warnung), eine für fehlerhafte bzw. fehlende Eingabe.

.textInput {
border: 1px solid #000000;
}

.textInputError {
border: 1px solid #000000;
background: #FFCC00;
}


if(!$email) {
$emailCSS = "textInputError";
}

<input type="text" class="<?$emailCSS?>" name="usw.">


als Antwort auf: [#256475]

Anzeige der Fehlermeldung im Formular

ganesh
Beiträge gesamt: 1981

14. Okt 2006, 04:55
Beitrag # 3 von 4
Beitrag ID: #256488
Bewertung:
(2226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen


als Antwort auf: [#256487]

Anzeige der Fehlermeldung im Formular

kareh
Beiträge gesamt: 239

14. Okt 2006, 23:05
Beitrag # 4 von 4
Beitrag ID: #256566
Bewertung:
(2169 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ganesh,

vielen Dank für Deine Tipps.

Was das Aussehen einer Fehlermeldung per CSS angeht, habe ich mein Problem lösen können. Vielen Dank!

Was mich etwas ärgert, ist die Tatsache, dass der IE (den ja leider die meisten User nutzen) die CSS-Definition für Rahmen und Cursor nicht für alle Formularfelder (z.B. Liste/Menü) übernimmt. Gibt es da noch andere Möglichkeiten?

Mit Deinem Hinweis:
Zitat Schau mal nach bzgl. "heredoc" Syntax für Texte mit mehreren Zeilen:
http://ch2.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc
(d.h. bei dir konkret für die Email-Nachricht)

kann ich leider nichts anfangen. Da weiß ich nicht, was Du damit meinst.
------------------------------------------------------------------
Gruß Karin
(Benutze DW CS3, Firefox 32.0.1, Windows 7)


als Antwort auf: [#256487]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
05.03.2021 - 30.04.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 05. März 2021, 13.00 Uhr - Freitag, 30. Apr. 2021, 17.00 Uhr

Lehrgang

Im berufsbegleitenden Web Publisher Lehrgang vertiefen Sie Ihr Wissen rund um das Thema Screendesign und die Umsetzung von Websites. Wir befähigen Sie dazu selbständig und professionell Ihren Webauftritt zu planen und in die Realität umzusetzen.

Preis: CHF 3'250.–
Dauer: 8.5 Tage - Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PWEB