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>