PHP在mySQL字段中添加echo变量时添加引号。

时间:2016-05-11 17:11:40

标签: php html echo

我遇到了问题,已将一些已编码的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获取文本有关...

提前致谢

screen grab of browser output, and web inspector

1 个答案:

答案 0 :(得分:0)

解决方案:使用mysqli_real_escape_string对html进行编码,然后存储在mySql数据库中