PHP Wyświetla komunikaty o błędach w porządku i ponownie wyświetla poprawne pola

Mam formularz e-mail, który sprawdza trzy pola, nazwę, prawidłowy adres e-mail i komentarze. Ale sposób, w jaki jest teraz skonfigurowany, ponieważ nazwa i komentarze są w jednej funkcji, najpierw sprawdza nazwę i komentarze, nawet jeśli e-mail nie jest prawidłowy, jak mogę go ponownie napisać, aby sprawdzał pola w porządku. Chciałbym także ponownie wyświetlić pola, które nie zawierają błędów, więc użytkownik nie musi wpisywać ponownie. Proszę pomóż. Dzięki

<code><?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();
}
?>
</code>

questionAnswers(4)

yourAnswerToTheQuestion