2013-03-01 3 views
3

mysql 테이블 안에 html 태그를 표시하는 방법을 알아 내려고 노력하고 있습니다. 태그를 제대로 보려면 addslashes, mysql_real_escape_string 및 stripslashes를 사용해 보았습니다. 브라우저를 통해 데이터를 볼 때마다 html 텍스트가 표시됩니다. 예 :PHP에서 mysql 데이터베이스의 html을 표시하는 방법

나는 MySQL 데이터베이스 테이블이 있습니다

<strong>Test</strong> 
웹 페이지에서 볼 때이로 표시한다

: 테스트

하지만 그 대신, 그것은 표시 <strong>Test</strong>

콘텐츠를보기위한 나의 PHP 코드는 다음과 같습니다 :

<?php 

require_once("inc.php"); //This includes the configuration for mysql database 

?> 
<html> 
    <head> 
    </head> 
    <body> 
    <p> 
<?php 

$conn = mysql_connect(HOST,USER,PASS) or die(mysql_error()); 
     mysql_select_db(NAME) or die(mysql_error()); 

$sql = "SELECT * FROM events"; 
$query = mysql_query($sql); 

while($row = mysql_fetch_assoc($query)){ 
    echo(stripslashes($row['details'])); //The details is what contains the <strong>Test</strong> 
} 

mysql_close($conn) or die(mysql_error()); 

?> 
    </p> 
    </body> 
</html> 
+0

으로 다음 줄

echo(stripslashes($row['details'])); //The details is what contains the <strong>Test</strong> 

를 교체? 또한, 귀하의 질문에 따라 아마 당신은 태그로 PHP를 추가해야합니다. – aaaaaa123456789

+1

대부분의 경우 xss 공격을 막기 위해 자동 출력 이스케이프 기능을 사용합니다. 이스케이프하지 않고 문자열을 출력하는 쉬운 방법이 있다는 것을 알고있는 모든 프레임 워크에서. 질문에 프레임 워크의 이름을 추가해야합니다. – Hari

+0

PHP를 사용하여 데이터를 표시하고 있습니다. – Vince

답변

28

사용 htmlspecialchars_decode

은 무엇 코드 것은 당신이 데이터를 표시하는 데 사용하는

echo htmlspecialchars_decode(stripslashes($row['details'])); //The details is what contains the <strong>Test</strong> 
+1

이것은 작동 중입니다! 왜이 대답을 받아 들일 수 없었습니다. 정말 도움이됩니다. – Harsha

관련 문제