2010-06-08 4 views
1

SQL의 텍스트 필드에 저장된 HTML 문자 코드를 적절한 문자로 렌더링하지 않고 텍스트 영역에 표시 할 수 있습니까? 나는 & amp로 나타나기 위해 &을 wasnt한다; (테이블에 저장된 방식). 아니면 내가 이것에 대해 걱정할 필요가 없도록 HTML을 저장해야하는 그들의 방식입니까?HTML 문자 코드가 텍스트 영역에 렌더링되지 않도록 방지

(사이트가 사용하는 PHP)

+0

데이터베이스가 "&"을 (를) 저장하고 "&"를 텍스트 영역에 표시하려고하거나 데이터베이스에 "&"이 저장되어 있고 "&"이 나타나기를 원하는 경우 오타가 명확하지 않습니다. – deceze

답변

0

PHP에서는이 함수를 반드시 htmlspecialchars를 사용할 수 있습니다 (http://php.net/manual/en/function.htmlspecialchars.php) :

<?php 
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
echo $new; 
?> 

그것은 렌더링 :

&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 

당신이 그들을 해독하려면 그냥 htmlspecialchars_decode 함수를 사용하십시오.

<?php 
$str = '<p>this -&gt; &quot;</p>'; 

echo htmlspecialchars_decode($str); 

// note that here the quotes aren't converted 
echo htmlspecialchars_decode($str, ENT_NOQUOTES); 
?> 
+0

감사합니다. 실제로 질문을 게시 한 후 몇 분 후에이 사실을 알았지 만 응답에 감사드립니다. – seanmetzgar

0

당신이 말하는 것은 HTML 인코딩입니다. 모든 현대 언어에는 PHP의 htmlspecialchars 함수와 같은 라이브러리를위한 기능이 있습니다. PHP에 대한 자세한 내용은 this SO question을 참조하십시오.

여러 라운드에 대해 HTML 디코딩의도 입력을 제대로 살균해야합니다. 그렇지 않으면 CSS (교차 사이트 스크립팅) 공격에 취약 할 수 있습니다.

관련 문제