2009-08-14 228 views
0

任何人都可以告诉我,如果代码有问题或更好的方法来修改它?由于某种原因,当我点击提交的联系表单时,它会显示“error.html”页面,但我仍然收到发送到我的帐户的电子邮件。PHP电子邮件形式

$EmailTo = "[email protected]"; 
$Subject = "Contact Submission"; 

$Name = Trim(stripslashes($_POST['name'])); 
$Email = Trim(stripslashes($_POST['email'])); 
$Budget = Trim(stripslashes($_POST['budget'])); 
$Message = Trim(stripslashes($_POST['message'])); 

// prepare email body text 
$Body = 'Contact Submission'."\n"; 
$Body .= 'Name:  ' .$Name."\n"; 
$Body .= 'Email:  ' .$Email."\n"; 
$Body .= 'Budget:  ' .$Budget."\n"; 
$Body .= 'Message:  ' .$Message."\n"; 


// send email 
$success_email = mail($EmailTo, $Subject, $Body, "From: <$Email>"); 

// redirect to success page 
// CHANGE THE URL BELOW TO YOUR "THANK YOU" PAGE 
    if ($success){ 
    header ('location:thankyou.html'); 
    } 
    else{ 
    header ('location:error.html'); 
    } 
+1

这是放置出口的好形式;在您的位置标题下 - 确保页面不会在不太可能的情况下被解析 – alex 2009-08-14 03:03:31

回答

8

变化

if ($success){ 

if ($success_email){ 

$成功不存在...

0
$EmailTo = "[email protected]"; 
$Subject = "Contact Submission"; 

$Name = Trim(stripslashes($_POST['name'])); 
$Email = Trim(stripslashes($_POST['email'])); 
$Budget = Trim(stripslashes($_POST['budget'])); 
$Message = Trim(stripslashes($_POST['message'])); 

// prepare email body text 
$Body = 'Contact Submission'."\n"; 
$Body .= 'Name:   ' .$Name."\n"; 
$Body .= 'Email:   ' .$Email."\n"; 
$Body .= 'Budget:   ' .$Budget."\n"; 
$Body .= 'Message:  ' .$Message."\n"; 


// send email 
$success_email = mail($EmailTo, $Subject, $Body, "From: <$Email>"); 

// redirect to success page 
// CHANGE THE URL BELOW TO YOUR "THANK YOU" PAGE 
    if ($success_email){ 
    header ('location:thankyou.html'); 
    } 
    else{ 
    header ('location:error.html'); 
    } 
0
//Checking for empty for redirecting error page 
if(empty($Name) || empty($Email)||empty($Budget)) 
{ 
    header('Location:error.html'); 
    exit; 
} 

//Send the email! if the fileds are not empty 
mail($EmailTo, $Subject,$Body,"From: <$Email>"); 

//One the email is sent, Redirect to thankyou page. 
header('Location: thankyou.html');