PHP Fehlermeldungen Anzeigen, um-und re-display die richtigen Felder

Habe ich eine E-Mail-Formular, das überprüft, drei Felder, Namen, gültige E-Mail und Kommentare. Aber so, wie es jetzt eingerichtet, da die Namen und Kommentare sind in einer Funktion, die zunächst prüft, Namen und Kommentare, auch wenn E-Mail nicht gültig ist, wie kann ich wieder schreiben Sie so prüft es die Felder in der Reihenfolge. Außerdem würde ich gerne wieder die Felder angezeigt, die keine Fehler aufweisen, so dass die Benutzer nicht haben, um geben Sie wieder. Bitte helfen Sie. Dank

<?php
$myemail = "[email protected]";
$yourname = check_input($_POST['yourname'], "Enter your name!");
$email = check_input($_POST['email']);
$phone = check_input($_POST['phone']);
$subject = check_input($_POST['subject']);
$comments = check_input($_POST['comments'], "Write your comments!");

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
  {
    show_error("Enter a valid E-mail address!");
  }

exit();

function check_input($data, $problem='')
 {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
    show_error($problem);
}
return $data;
}

function show_error($myError)
{
?>
<!doctype html>
<html>
<body>
<form action="myform.php" method="post">
 <p style="color: red;"><b>Please correct the following error:</b><br />
 <?php echo $myError; ?></p>
 <p>Name: <input type="text" name="yourname" /></P>
 <P>Email: <input type="text" name="email" /></p>
 <P>Phone: <input type="text" name="phone" /></p><br />
 <P>Subject: <input type="text" style="width:75%;" name="subject" /></p>
 <p>Comments:<br />
 <textarea name="comments" rows="10" cols="50" style="width: 100%;"></textarea></p>
 <p><input type="submit" value="Submit"></p>
</form>
</body>
</html>
<?php
exit();
}
?>
Ich versuchte, um die regex in der Funktion check_input aber dann die E-Mail-Fehler zeigten unabhängig.

InformationsquelleAutor Mosaic | 2012-04-18

Schreibe einen Kommentar