2017-03-16 107 views
-2

我已經找遍解決了我的問題,但似乎無法使其工作。將數據發送到電子郵件併發送確認電子郵件的表單

我有一個從用戶獲取數據的表單,然後當他們單擊提交時通過電子郵件發送給我。

我還希望他們收到他們提供的地址的確認電子郵件,這是我卡住的地方。

如果需要的形式,請詢問,我會送,但這裏是PHP ...

<?php 
if(isset($_POST['email'])) { 

// EDIT THE 2 LINES BELOW AS REQUIRED 
$email_to = "[email protected]"; 
$email_subject = "CompuMod Web-site Order"; 

function died($error) { 

// your error code can go here 
echo "Something was entered incorrectly…"; 
echo "Please correct the following.<br /><br />"; 
echo $error."<br /><br />"; 
echo "After correcting, please try again.<br /><br />"; 
die(); 
} 

// validation expected data exists 
if(
!isset($_POST['site']) || 
!isset($_POST['page']) || 
!isset($_POST['domain']) || 
!isset($_POST['host']) || 
!isset($_POST['service']) || 
!isset($_POST['firstname']) || 
!isset($_POST['lastname']) || 
!isset($_POST['company']) || 
!isset($_POST['email']) || 
!isset($_POST['telephone']) || 
!isset($_POST['idnumber']) || 
!isset($_POST['address']) || 
!isset($_POST['suburb']) || 
!isset($_POST['city']) || 
!isset($_POST['province']) || 
!isset($_POST['postcode']) || 
!isset($_POST['comments'])) { 
died('Something was entered incorrectly…'); 
} 

$site = $_POST['site']; // required 
$page = $_POST['page']; // required 
$domain = $_POST['domain']; // required 
$host = $_POST['host']; // required 
$service = $_POST['service']; // required 
$firstname = $_POST['firstname']; // required 
$lastname = $_POST['lastname']; // required 
$company = $_POST['company']; // not required 
$email = $_POST['email']; // required 
$telephone = $_POST['telephone']; // required 
$idnumber = $_POST['idnumber']; // required 
$address = $_POST['address']; // required 
$suburb = $_POST['suburb']; // not required 
$city = $_POST['city']; // required 
$province = $_POST['province']; // required 
$postcode = $_POST['postcode']; // required 
$comments = $_POST['comments']; // not required 

$error_message = ""; 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$site)) { 
$error_message .= 'Your 「Base Site Design」 was not Selected.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$page)) { 
$error_message .= 'Your 「Extra Pages」 was not Selected.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$domain)) { 
$error_message .= 'Your 「Domain Registration」 was not Selected.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$host)) { 
$error_message .= 'Your 「Host Server Size」 was not Selected.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$service)) { 
$error_message .= 'Your 「Service Package」 was not Selected.<br />'; 
} 
$string_exp = "/^[A-Za-z .'-]+$/"; 
if(!preg_match($string_exp,$firstname)) { 
$error_message .= 'Your 「First Name」 was not entered or entered incorrectly.<br />'; 
} 
if(!preg_match($string_exp,$lastname)) { 
$error_message .= 'Your 「Last Name」 was not entered or entered incorrectly.<br />'; 
} 
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
if(!preg_match($email_exp,$email)) { 
$error_message .= 'Your 「E-Mail」 was not entered or entered incorrectly.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$telephone)) { 
$error_message .= 'Your 「Phone/Cell」 was not entered or entered incorrectly.<br />'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$idnumber)) { 
$error_message .= 'Your 「SA ID Number」 was not entered or entered incorrectly.<br />'; 
} 
$string_exp = "/^[A-Za-z0-9 .'-]+$/"; 
if(!preg_match($string_exp,$address)) { 
$error_message .= 'Your 「Street Address」 was not entered or entered incorrectly.<br />'; 
} 
$string_exp = "/^[A-Za-z .'-]+$/"; 
if(!preg_match($string_exp,$city)) { 
$error_message .= 'Your 「City」 was not entered or entered incorrectly.<br />'; 
} 
$string_exp = "/^[A-Za-z .'-]+$/"; 
if(!preg_match($string_exp,$province)) { 
$error_message .= 'Your 「Povince」 was not entered or entered incorrectly.<br/>'; 
} 
$string_exp = "/^[0-9]+$/"; 
if(!preg_match($string_exp,$postcode)) { 
$error_message .= 'Your 「Postal Code」 was not entered or entered incorrectly.<br />'; 
} 

if(strlen($error_message) > 0) { 
died($error_message); 
} 
$email_message = "Client request details below.\n\n"; 
function clean_string($string) { 
$bad = array("content-type","bcc:","to:","cc:","href"); 
return str_replace($bad,"",$string); 
} 

//request email variables 
$email_message .= "Base Site Design: - ".clean_string($site)."\n"; 
$email_message .= "Extra Pages: - ".clean_string($page)."\n"; 
$email_message .= "Domain Registration: - ".clean_string($domain)."\n"; 
$email_message .= "Host Server Size: - ".clean_string($host)."\n"; 
$email_message .= "Service Package: - ".clean_string($service)."\n"; 
$email_message .= "First Name: - ".clean_string($firstname)."\n"; 
$email_message .= "Last Name: - ".clean_string($lastname)."\n"; 
$email_message .= "Company: - ".clean_string($company)."\n"; 
$email_message .= "E-Mail: - ".clean_string($email)."\n"; 
$email_message .= "Phone/Cell: - ".clean_string($telephone)."\n"; 
$email_message .= "SA ID Number: - ".clean_string($idnumber)."\n"; 
$email_message .= "Address: - ".clean_string($address)."\n"; 
$email_message .= "Suburb: - ".clean_string($suburb)."\n"; 
$email_message .= "City: - ".clean_string($city)."\n"; 
$email_message .= "Province: - ".clean_string($province)."\n"; 
$email_message .= "Postal Code: - ".clean_string($postcode)."\n"; 
$email_message .= "Extra Requests: - ".clean_string($comments)."\n"; 

$headers = 'From: '.$email_from."\r\n". 
      'Reply-To: '.$email_from."\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 

//conformation email variables 
$subject = "Welcome & Thanks!"; 
$email_message = "Thank you ".clean_string($firstname)." ".clean_string($lastname)." for your request\n\n"; 
$email_message .= "A Compumod representative will contact you as soon as posable.\n"; 

$headers = 'From: '.$email_from."\r\n". 
      'Reply-To: '.$email."\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
@mail($email, $subject, $email_message, $headers); 

header('Location: http://www.compumodsa.com/index.php/component/k2/item/21'); 

?> 
<!-- include your own success html here --> 
<?php 
} 
?> 

的形式獲取詳細信息通過電子郵件發送給我...

//request email variables 
$email_message .= "Base Site Design: - ".clean_string($site)."\n"; 
$email_message .= "Extra Pages: - ".clean_string($page)."\n"; 
$email_message .= "Domain Registration: - ".clean_string($domain)."\n"; 
$email_message .= "Host Server Size: - ".clean_string($host)."\n"; 
$email_message .= "Service Package: - ".clean_string($service)."\n"; 
$email_message .= "First Name: - ".clean_string($firstname)."\n"; 
$email_message .= "Last Name: - ".clean_string($lastname)."\n"; 
$email_message .= "Company: - ".clean_string($company)."\n"; 
$email_message .= "E-Mail: - ".clean_string($email)."\n"; 
$email_message .= "Phone/Cell: - ".clean_string($telephone)."\n"; 
$email_message .= "SA ID Number: - ".clean_string($idnumber)."\n"; 
$email_message .= "Address: - ".clean_string($address)."\n"; 
$email_message .= "Suburb: - ".clean_string($suburb)."\n"; 
$email_message .= "City: - ".clean_string($city)."\n"; 
$email_message .= "Province: - ".clean_string($province)."\n"; 
$email_message .= "Postal Code: - ".clean_string($postcode)."\n"; 
$email_message .= "Extra Requests: - ".clean_string($comments)."\n"; 

$headers = 'From: '.$email_from."\r\n". 
      'Reply-To: '.$email_from."\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 

的構想電子郵件女巫是假設去用戶...

//conformation email variables 
$subject = "Welcome & Thanks!"; 
$email_message = "Thank you ".clean_string($firstname)." ".clean_string($lastname)." for your request\n\n"; 
$email_message .= "A Compumod representative will contact you as soon as posable.\n"; 

$headers = 'From: '.$email_from."\r\n". 
      'Reply-To: '.$email."\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
@mail($email, $subject, $email_message, $headers); 

用戶沒有收到電子郵件。

所有的幫助,將這麼多的讚賞......

+0

如果有什麼在那裏請讓我知道不必要的。 –

+1

什麼似乎是問題?它工作嗎?它是否寄出或沒有?有沒有任何錯誤,你在檢查他們?如果表單不使用POST方法並且輸入未命名,那可能會使您的代碼停止。 –

+0

開頭的所有'if(isset())'部分都可以通過在HTML表單中放置一個「required」來替換。 – Twinfriends

回答

0

不知道你正在嘗試做的,但是這很可能是您的問題在於......

if($_POST['email'] == "post") 
{ 
    //email variables 
    $subject = "Indie Rally - Welcome & Thanks!"; 
    $email_message = "Thank you ".clean_string($firstname)." ".clean_string($lastname)."for your request\n\n"; 
    $email_message .= "A Compumod representative will contact you as soon as posable.\n"; 

    // create email headers 
    $headers = 'From: [email protected]' . "\r\n" . 
       'Reply-To: $email' . "\r\n" . 
       'X-Mailer: PHP/' . phpversion(); 

    mail($email, $subject, $email_message, $headers); 

} 

假設$_POST['email']是填寫表格的人的電子郵件地址,如果它等於明顯無效的電子郵件地址「post」可能是A)總是會失敗條件支票或B)通過有條件支票並通過無效的「要:「地址到PHP郵件功能。

由於您之前已經執行過測試以確保電子郵件地址既存在也有效,因此您不應該要求有關自動回覆功能的條件。只需發送電子郵件。

這將離開你這個...

/* 
* Notice the removal of the `if()` statement 
*/ 
//email variables 
$subject = "Indie Rally - Welcome & Thanks!"; 
$email_message = "Thank you ".clean_string($firstname)." ".clean_string($lastname)."for your request\n\n"; 
$email_message .= "A Compumod representative will contact you as soon as posable.\n"; 

// create email headers 
$headers = 'From: [email protected]' . "\r\n" . 
      'Reply-To: $email' . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 

mail($email, $subject, $email_message, $headers); 
+0

對不起,聽起來像一個總noob(女巫我在這)。如您所述,代碼存在問題。你能幫我糾正一下嗎? –

+0

@ C-GuL我試圖澄清我在說什麼。看看答案的底部。 –

+0

我編輯了我的問題上的最後一個代碼框。仍然沒有郵件發送給用戶。如果我替換@mail($ email);用$ email_to發送到webhost地址。現在看來,它似乎沒有從輸入中獲取郵件地址。 –