2016-11-09 116 views
1

我在为我的网站设置邮件表单时遇到了一些麻烦。目前,当我按下提交表单时,发送给我的电子邮件仅显示文本部分,并且不显示变量! 因此,在我的电子邮件中,它只会显示“此消息是从”PHP变量不会在电子邮件中显示

我对PHP相当新 - 希望有人可以看看,也许指出我没有得到什么?

谢谢!

<? 
if(isset($_POST['message']) && ($_POST['message'] != '')){ 
    $name = $_POST["name"]; 
    $subject = "New Request"; 

    $recipient = "[email protected]"; 
    $message = $_POST["message"]; 

    $mailBody = 'This message is from $name \n $message; 

    mail($recipient, $subject, $mailBody); 
} 
?> 
+6

的可能的复制(http://stackoverflow.com/questions/3446216/what-is-在单引号和双引号字符串在PHP中的差异) – Phiter

回答

4

首先CONCAT你varriable名称与您在 单引号传递,因此PHP认为这是一个字符串string.as。

试试下面的代码

<? 
if(isset($_POST['message']) && ($_POST['message'] != '')){ 
    $name = $_POST["name"]; 
    $subject = "New Request"; 

    $recipient = "[email protected]"; 
    $message = $_POST["message"]; 

    $mailBody = 'This message is from '.$name."\r\n". $message; 


    mail($recipient, $subject, $mailBody); 
} 
?> 

也知道差约单引号双引号你可以参考以下链接:
What is the difference between single-quoted and double-quoted strings in PHP?

+1

你不需要双引号与'\ r \ n'他们是一个换行符,而不是只打印这些字符出来吗? –

+1

@magnuseriksson是的,有错字更新的答案,谢谢 –

1

您应该使用double quoted string 也看看this

<? 
if(isset($_POST['message']) && ($_POST['message'] != '')){ 
    $name = $_POST["name"]; 
    $subject = "New Request"; 

    $recipient = "[email protected]"; 
    $message = $_POST["message"]; 

    $mailBody = 'This message is from '.$name."\r\n". $message; 

    mail($recipient, $subject, $mailBody); 
} 
?> 
+2

他为什么要尝试这个?添加一个解释,不要只是发布代码。 –

+0

@Magnus Eriksson你解释得很好。 – Tiger

+1

最好写出一个正确和好的答案,而不是一个快速的答案(你还没有添加任何解释)。你需要在'\ r \ n'附近加双引号。 –

0
$mailBody = 'This message is from '.$name.' \r\n'. $message; 

OR

$mailBody = "This message is from $name\r\n$message"; 

你所写的变量是它把你的变量作为文本的单引号,其中因为没有引号或双引号内的第一行能把这些作为变量。

请仔细阅读:[?是什么在PHP单引号和双引号字符串的区别] What is the difference between single-quoted and double-quoted strings in PHP?