我有一個PHP和HTML代碼。我有4個電子郵件發送輸入(名稱,主題,消息),我有異常驗證。現在我的編碼工作:如果第一個輸入是空的,然後顯示錯誤消息,如果第二個輸入是空的(並且第一個不是空的)顯示錯誤消息,等等...我想顯示每個錯誤消息,如果我點擊發送不是一個一個用php例外。任何想法如何解決它?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>
將異常消息保存在數組中,而不是立即拋出異常,在檢查完條件時拋出所有異常 – funsholaniyi
'$ name = isset($ _ POST ['name'])? $ _POST ['name']:「」; $ to = isset($ _ POST ['to'])? $ _POST ['to']:「」; $ subject = isset($ _ POST ['subject'])? $ _POST ['subject']:「」; $ message = isset($ _ POST ['message'])? $ _POST ['message']:「」;' – Eugen
@Eugen在哪裏插入這段代碼? –