我遇到了问题,已将一些已编码的html存储到mySQL数据库中。 但是当我解码并回显变量时。它会在输出中添加双引号。
代码:
$content = mysqli_fetch_array($r);
$data = $content['contentHTML'];
$html = html_entity_decode($data,ENT_COMPAT, 'UTF-8');
$output = <<<MY_MARKER
$html
MY_MARKER;
echo $output;
$html = "I am going to hax0r your site, hahaha! <script type='text/javascript'> window.location = 'http://www.example.com/' </script>"
但它会添加&#34;回到浏览器时。
这有效:
$str = <<<MY_MARKER
<script type="text/javascript">
document.write("Hello World2!<br>");
</script>
MY_MARKER;
echo $str;
这有效:
$userInput = "I am going to hax0r your site, hahaha! <script type='text/javascript'> window.location = 'http://www.example.com/' </script>";
$str = <<<MY_MARKER
$userInput
MY_MARKER;
但我的代码输出带引号,因此javascript会在浏览器中打印出来。
它与从mySQL获取文本有关...
提前致谢
答案 0 :(得分:0)
解决方案:使用mysqli_real_escape_string对html进行编码,然后存储在mySql数据库中