PHP Mostrar mensagens de erro em ordem e re-exibir os campos corretos
Eu tenho um formulário de e-mail que verifica três campos, nome, e-mail válido e comentários. Mas como está configurado agora, já que o nome e os comentários estão em uma função, primeiro ele verifica o nome e os comentários, mesmo que o e-mail não seja válido, como posso reescrevê-lo para verificar os campos em ordem. Além disso, gostaria de exibir novamente os campos que não possuem erros, portanto, o usuário não precisa digitar novamente. Por favor ajude. obrigado
<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>