你好3天后,試圖把我的表格在一起,我遇到了一個問題... 使用表格,它可以驗證當我按下提交。這是好的,但一旦我按發送,無效的數據仍然會發送到我的收件箱..所以我最終會收到兩封電子郵件..一個與無效的數據,然後一個有效的數據,它是在輸入錯誤信息後輸入已被顯示並重新發送。如果任何人都可以看看我的代碼,看看我錯過了什麼,或做錯了我會欣賞它洙多php發送無效的電子郵件地址
<?php
if (isset($_POST['submit'])) {
//check email
if(empty($_POST['email_addr']))
$msg_email = "*";
$email_subject = $_POST['email_addr'];
$email_pattern = '/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/';
preg_match($email_pattern, $email_subject, $email_matches);
if(!$email_matches[0])
$msg2_email = "Please enter a valid email address";
}
// validation complete
if(isset($_POST['submit'])){
if($msg_name=="" && $msg2_name=="" && $msg_email=="" && $msg2_email=="")
$msg_success = "Thankyou for your enquiry";
//send mail
$EmailFrom = "[email protected]";
$EmailTo = "[email protected]";
$Subject = "Online contact form";
$email_addr = Trim(stripslashes($_POST['email_addr']));
}
// prepare email body text
$Body = "";
$Body .= "email_addr: ";
$Body .= $email_addr;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: $EmailFrom");
?>
設置一個默認狀態爲false的布爾變量。正確驗證時,將該變量設置爲true。如果這個變量是真的,表單驗證正確,所以發送電子郵件。 – Tim
你能提供一個例子嗎?我已經從字面上只是一個tutorias - [http://www.w3resource.com/php/form/php-form-validation.php]並試圖一路學習,但它很難當你沒有太多的經驗與PHP並有一週時間完成一個網站:p –