2016-11-09 112 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?