2011-03-13 5 views
1

사용자가 코드를 데이터베이스에 HTML로 저장하는 간단한 사이트를 만들었습니다. 예 :HTML을 코드로 표시

<!DOCTYPE html> 
      <html lang="en"> 
       <head> 
        <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=1024"> 
        <title></title> 
       </head> 

       <body id="" class=""> 


</body> 
</html> 

나는 다른 사람들이 내가 여전히 HTML을 렌더링하고 표시하는 코드로 취급하지 않는 어떤 데이터베이스가 <code><pre></pre></code> 내부 뱉어 포장 때와 같이 볼 수 있도록 사이트를 보여주는이 문제. 이 문제를 해결하기 위해 &gt;을 사용해야한다고 읽었지만 사용자가 원시 코드를 공유하고 해당 코드를 HTML 엔티티로 변환하기 시작할 수 없기 때문에 가능하지 않습니다! 어떻게 해결할 수 있습니까? 감사. 여기

는 양식이 DB에이를 삽입하기위한 코드입니다 http://pastebin.com/i3pn2AjT

이 내가 현재를 표시하는 방법입니다 <div class="code"> <pre> <?php echo get_post_meta($posts_post_id, 'post_code', true); ?> </pre> </div>

+2

HTML 문자가 DB에 삽입 될 때 이스케이프 처리 중입니까? –

+1

아니요. PHP로 어떻게하면 되나요? DB에 이것을 원래 게시물에 삽입하기 위해 사용하는 양식을 추가 할 것입니다. – Cameron

+1

@ AndrewMoore의 답변을 아래에서 확인하십시오. –

답변

7

당신은 표시 시간 또는 HTML 코드 중 하나를 탈출해야합니다 삽입 시간에.

이전 질문의 경우 PHP를 사용하고있는 것으로 보입니다. htmlentities()으로이 작업을 수행 할 수 있습니다. 예를 들어

:

<code><?php echo htmlentities($userSuppliedHTML, ENT_QUOTES, 'UTF-8'); ?></code> 
+0

에코되고있는 get_post_meta 함수에 htmlentities를 어떻게 사용합니까? – Cameron

+0

@Cameron : 대신 삽입시 이스케이프 처리하십시오. '$ post_code = htmlentities ($ _ POST [ 'post_code'], ENT_QUOTES, 'UTF-8');'. 나는 워드 프레스를 모른다. 그리고 나는 그것들의 기능을 배우는 것이 좋은 생각이 아니라고 확신한다. –