2014-06-08 34 views
0

我有一個小問題,但我不能找出如何解決它.. (代碼第一)HTML在PHP郵件

這是我的PHP代碼:

<?php 
// Simple basic check 
function checkData($mandatory_fields, $field_input) { 

$check = true; 
foreach($mandatory_fields as $key=>$value) { 

    if(empty($field_input[$value])) { 
     $check = false; 
    } 
} 
return $check; 
} 

function unserializeData() { 
$serializedData = $_POST['value']; 
$unserializedData = array(); 
parse_str($serializedData, $data); 
return $data; 
} 

function mailContactForm() { 
$data = unserializeData(); 
$mandatory = array("comment_name", "comment_email", "comment_message", "titel", "email_adverteerder","advertentie_titel","prijs"); 
if (!checkData($mandatory, $data)) { 
    header("HTTP/1.1 400 Bad Request"); 
    return false; 
} 

$to = $data["email_adverteerder"]; 
$from = $data["comment_name"]; 
$subject = 'You have a new message ' .$data["titel"] ; 
$message = ' 
<html> 
<head> 

</head> 
<body> 
    '. $data["comment_message"].'<br><br> 
</body> 
</html> 
'; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= "From:".$data["comment_name"]."<".$data["comment_email"].">" . "\r\n" . 
"Reply-To: ".$from."" . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
mail($to, $subject, $message, $headers); 

} 

mailContactForm(); 

?> 

HTML代碼:

<div> 
<label for="comment-text">Uw reactie: <span class="mandatory">*</span></label> 
    <textarea id="comment-text" name="comment_message"></textarea> 
</div> 

就像我說我的代碼工作正常(林獲取郵件)除$ data [「comment_message」]。問題是當我發送郵件時,收到的郵件不一樣。

例子:如果我寫在我的html文本區域這樣的: 的Hello World,

林很高興

林在我的電子郵件得到這個: 的Hello World,林非常高興。

所以他這麼想的製作換行符..

我希望我給你足夠的信息來幫助我。

回答

2

textarea的值不只是輸出HTML代碼,你可能不希望用戶能夠通過textarea提交HTML代碼。使用nl2br()將新的換行符轉換爲HTML換行符。

我會跑nl2br(htmlentities($data["comment_message"]));

htmlentities()將HTML代碼轉換爲特殊實體,所以它不會執行的代碼,但將只顯示它。例如:<img src='...' />在textarea中不會顯示圖片,它只會顯示代碼。

+0

現在效果很好!感謝您提供的信息。 – user3450364