我有一个php和html代码。我有4个输入电子邮件发送(名称,到,主题,消息),我有异常验证。现在我的编码工作:如果第一个输入是空的然后显示错误消息,如果第二个输入为空(并且第一个不为空)显示错误消息等...我想显示每个错误消息,如果我点击发送不是一个通过一个与php异常。任何想法我该如何解决?
具有异常处理的PHP代码:
if (isset($_POST['Send'])) {
class emailException extends Exception {}
class email_validException extends Exception {}
class subjectException extends Exception {}
class messageException extends Exception {}
$name = $_POST['name'];
$to = $_POST['to'];
$subject = $_POST['subject'];
$message = $_POST['message'];
try {
if($name == "") {
throw new Exception("Töltsd ki a mezőt(1)!");
}
if($to == "") {
throw new emailException("Töltsd ki a mezőt(2)!");
}
// Email cim ellenőrzése
if (!filter_var($to, FILTER_VALIDATE_EMAIL)) {
throw new email_validException("Hibás email cím!");
}
if($subject == "") {
throw new subjectException("Töltsd ki a mezőt(3)!");
}
if($message == "") {
throw new messageException("Töltsd ki a mezőt(4)!");
}
if ($name != "" && $to != "" && $subject != "") {
echo "Email elküldve";
$name = "";
$to = "";
$subject = "";
$message = "";
}
}
catch(emailException $e1) {
$error_mail = $e1->getMessage();
}
catch(email_validException $e1) {
$error_mail_valid = $e1->getMessage();
}
catch(subjectException $e2) {
$error_subj = $e2->getMessage();
}
catch(messageException $e3) {
$error_message = $e3->getMessage();
}
catch(Exception $e) {
$error = $e->getMessage();
}
}
HTML输入表单:
<form name="myForm" onsubmit="//return validateForm();" method="post" action="feladat9.php">
<p><input type="text" name="name" placeholder="Név" value="<?php echo $name; ?>"><label id="error_name"><?php echo $error ?></label></p>
<p><input type="text" name="to" placeholder="Címzett" value="<?php echo $to; ?>"><label id="error_email"><?php
echo "$error_mail $error_mail_valid";?></label></p>
<p><input type="text" name="subject" placeholder="Tárgy" value="<?php echo $subject; ?>"><label id="error_subject"><?php echo $error_subj ?></label></p>
<p><input type="text" name="message" placeholder="Üzenet" value="<?php echo $message; ?>"><label id="error_message"></label><?php echo $error_message ?></p>
<input type="submit" value="Send" id="send" name="Send">
</form>
答案 0 :(得分:1)
如果您想显示所有错误,则不应使用&#39;抛出新异常&#39;概念,因为异常停止下一步执行跳转到捕获部分。
您可以尝试这样:
Fooable
和$ errors变量可用于显示错误。