2011-11-18 55 views
-2

我的表單有問題。當我點擊提交時,所有的細節都通過我的電子郵件發送,但問題是:我收到2封電子郵件,其中1封在我的收件箱中,一封在我的垃圾郵件中。我點擊提交後,爲什麼會從我的表單收到2封電子郵件

我真的不知道爲什麼我有什麼錯我的代碼..

任何建議將高度讚賞。

這裏是我的send_app.php

<?php 

// get posted data into local variables 
$EmailFrom = "webmaster"; 
$EmailTo = "[email protected]"; 
$Subject = "Contact us"; 
$name = $_POST['name']; 
$address=$_POST['address']; 
$month =$_POST['month']; 
$day =$_POST['day']; 
$year =$_POST['year']; 
$home =$_POST['home']; 
$mobile =$_POST['mobile']; 
$contact =$_POST['contact']; 
$relationship =$_POST['relationship']; 
$course =$_POST['course']; 
$hours =$_POST['hours']; 



// prepare email body text 
$Body = ""; 
$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Address: "; 
$Body .= $address; 
$Body .= "\n"; 
$Body .= "Month: "; 
$Body .= $month; 
$Body .= "\n"; 
$Body .= "Day: "; 
$Body .= $day; 
$Body .= "\n"; 
$Body .= "Year: "; 
$Body .= $year; 
$Body .= "\n"; 
$Body .= "Home No.: "; 
$Body .= $home; 
$Body .= "\n"; 
$Body .= "Mobile: "; 
$Body .= $mobile; 
$Body .= "\n"; 
$Body .= "Contact Person: "; 
$Body .= $contact; 
$Body .= "\n"; 
$Body .= "Relationship: "; 
$Body .= $relationship; 
$Body .= "\n"; 
$Body .= "Course: "; 
$Body .= $course; 
$Body .= "\n"; 
$Body .= "Hours: "; 
$Body .= $hours; 
$Body .= "\n"; 

$headers = "From: ".$EmailFrom."" ; 

// send email 
$success = mail($EmailTo, $Subject, $Body, $headers); 

// redirect to success page 
if (mail($EmailTo, $Subject, $Body, $headers)){ 

header("Location: application.php"); 

} 
?> 
+0

非常有趣居然... :) – Asken

回答

2

好代碼,你在你的代碼中調用mail兩次:

// send email 
$success = mail($EmailTo, $Subject, $Body, $headers); 

// redirect to success page 
if (mail($EmailTo, $Subject, $Body, $headers)){ 

所以當然郵件發送兩次...

+0

哇!現在只有1封電子郵件謝謝!我會記住這一點! :) – Jonathan

1

您正在給郵件打兩次電話!與

if ($success){ 
3

答案很簡單替換此代碼

// redirect to success page 
if (mail($EmailTo, $Subject, $Body, $headers)){ 

:您發送2個電子郵件:

// First E-Mail 
$success = mail($EmailTo, $Subject, $Body, $headers); 

// Second E-Mail 
if (mail($EmailTo, $Subject, $Body, $headers)){ 
    header("Location: application.php"); 
} 

只要刪除第一行,或者 - 如果你需要的返回值 - 寫此:

// Send E-Mail 
$success = mail($EmailTo, $Subject, $Body, $headers); 

if ($success){ 
    header("Location: application.php"); 
} 
+0

這一直非常有幫助。謝謝你,先生! – Jonathan

+0

@Jonathan:不客氣;-)只要接受其中一個答案,就是StackOverflow的工作原理[faq] – Fischermaen

1
// redirect to success page 
if (mail($EmailTo, $Subject, $Body, $headers)){ 

這個條件實際執行另一個發送,如果成功,然後將執行

header("Location: application.php"); 
相關問題