2012-03-16 80 views
-1

有我的联系表格IM建筑只是其不发送以下...PHP接触形式的错误

伊夫试图打印结果到它,但浏览器由于某种原因,它不会发送,任何人可以看到语法错误?

<?php 

$fname = $_POST['fname']; 
$lname = $_POST['lname']; 
$email = $_POST['email']; 
$addr = $_POST['addr']; 
$postcode = $_POST['postcode']; 
$landline = $_POST['landline']; 
$mob = $_POST['mob']; 
$carw = $_POST['carw']; 
$depo = $_POST['depo']; 
$marsta = $_POST['marsta']; 
$ressta = $_POST['ressta']; 
$to = "[email protected]"; 

    //begin of HTML message 
    $message = " 
    From : $name $lname, 
    Email: $email, 
    Address: $addr $postcode, 
    Landline: $landline, 
    Mobile: $mob, 
    Car Wanted: $carw, 
    Deposit Available: $depo, 
    Marital Status: $marsta, 
    Residential Status: $ressta"; 
    //end of message 

    // To send the HTML mail we need to set the Content-type header. 
    $headers = "MIME-Version: 1.0rn"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1rn"; 
    $headers .= "From: Website Enquiry"; 




if (isset($name)) 
{ 
     // now lets send the email. 
    mail($to, $subject, $message, $headers); 

header('Location: ' . $_SERVER['HTTP_REFERER'] . '?e=Thankyou, we will be in touch shortly.'); 

} else {header('Location: ' . $_SERVER['HTTP_REFERER'] . '?e=There was an error sending your message, Please try again.');} 

?> 
+1

不要自己建立MIME消息。使用swiftmailer或phpmailer。 – 2012-03-16 16:12:15

回答

2

请勿使用rn,请使用\r\n

对您的Location:标题数据进行网址编码。网址没有空格。

此外,请考虑不是每个人都可以阅读HTML电子邮件。发送除HTML版本以外的文本版本。

最后,你可能不想发送这样一个开放式的电子邮件,因为垃圾邮件发送者可以很容易地使用这个脚本。

+0

它仍然不发送不幸... – Liam 2012-03-16 16:08:40

+0

@Liam,请参阅MetalFrog的答案。 – Brad 2012-03-16 16:09:57

+0

+1代码改进建议。不会有伤害有一点输入验证。 – MetalFrog 2012-03-16 16:10:58

3

它不起作用的原因是,你正在检查是否设置了$name,显然不是。但你有一个$fname