【问题标题】:How to escape html code to insert in mysql如何转义html代码以插入mysql
【发布时间】:2011-05-18 11:52:37
【问题描述】:

我正在使用 tinymce 编辑器创建 html 页面,然后将其插入 mysql。 我试过这个:

 $esdata = mysql_real_escape_string($data);

它适用于所有 html 图像。如果我有像这样的超链接:

http://www.abc.com/pic.jpg

然后它使它有点非常模糊并且图像不会出现。

输入 <img src="../images/size-chart.jpg" alt="Beer" />

输出 <img src="\""images/size-chart.jpg\\"\"" alt="\"Beer" />

【问题讨论】:

  • 你在输出时没有转义吗?
  • 如果您不想猜测答案,请展示一个损坏的图像链接(?)的示例。还显示您如何将其插入数据库以及如何输出的代码。
  • 请注意,tinyMCE 有一些功能可以“支持”您……这也可能是奇怪输出的原因!只需通过 tinyMCE 外部的 echo 和 tinyMCE 内部的正常方式输出您的内容来仔细检查

标签: php mysql html


【解决方案1】:

尝试使用urlencodeurldecode 来转义字符串。 正如克里斯蒂安所说,它不是为了数据库而使用的,而是为了保持原样。所以你也可以使用urlencodeurldecode

例如:

//to encode
$output = urlencode($input);


//to decode
$input = urldecode($output);

【讨论】:

    【解决方案2】:

    在将代码发送到 DB 之前,您不应过度转义代码。

    当您转义它时,它会以原始方式存储在数据库中。转义不是为了数据库,而是为了保持数据不变,不允许用户在你的 sql 语句中注入坏东西(在发送数据库之前)。

    【讨论】:

      【解决方案3】:

      您应该使用htmlspecialchars 函数对字符串进行编码,并使用htmlspecialchars_decode 将字符串显示回html

      【讨论】:

        猜你喜欢
        • 2011-01-23
        • 1970-01-01
        • 2022-10-15
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多