2014-06-08 4 views
0

은 좀 문제가 있지만, 나는 그것을 해결하는 방법을 찾을 수 없습니다 .. 은 (코드 첫 번째) 여기 HTML은

내 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> 

내 코드는 $ 데이터를 제외하고 (임 메일을 받고) 잘 작동됩니다 사예드처럼 [ "comment_message"]. 문제는 메시지를 보낼 때 메시지가 같지 않다는 것입니다.

예 : 안녕하세요,

임 내 이메일이 점점

임 매우 행복 : 안녕하세요, 임 매우 행복 내 HTML 텍스트 영역이에 작성하는 경우.

그래서 그는 줄 바꿈을 ..

나는 당신이 나를 도울 수있는 충분한 정보를 준 희망 나던.

답변

2

텍스트 영역 값은 HTML 코드를 출력하지 않으며 사용자가 텍스트 영역을 통해 HTML 코드를 제출할 수 없도록하려는 것입니다.

nl2br()을 사용하여 줄 바꿈 문자를 HTML 줄 바꿈 문자로 변환하십시오.

나는 코드를 실행하지 않습니다하지만 그냥 표시됩니다 있도록 nl2br(htmlentities($data["comment_message"]));

htmlentities() 특수 기관에 HTML 코드를 변환합니다 실행됩니다. 예를 들면 : 텍스트 영역에 <img src='...' /> 이미지가 표시되지 않습니다, 그것은 단지 코드를 표시합니다.

+0

멋진 작품입니다! 정보를 주셔서 감사합니다. – user3450364