从数据库中检索后,Textarea内容搞砸了

时间:2012-04-08 08:15:10

标签: html textarea quotes

所以这是我的问题:

我为我的网站编写了一个管理区域,它有一个textarea,应该为网站创建新闻。在使用等等时一切正常。但是当涉及到引号(“”)时,一切都搞砸了。引号使用\(斜杠)获得ESCAPED。

提交的新闻将在网站的索引页面中显示,因此我知道管理中的书面HTML是否正常。代码应该是这样的:

<a href="http://www.youtube-nocookie.com/v/q9FY9O8os4M&hl=it_IT&fs=1?rel=0" rel="iframe-640-505" class="pirobox_gall1" title="MC Qoppa - Dashnise "><img src="../styles/thumbs/qopa2.jpg" width="250" height="140" class="thumb"></a>

这是提交后的样子:

<a href=\"http://www.youtube-nocookie.com/v/q9FY9O8os4M&hl=it_IT&fs=1?rel=0\" rel=\"iframe-640-505\" class=\"pirobox_gall1\" title=\"MC Qoppa - Dashnise \"><img src=\"../styles/thumbs/qopa2.jpg\" width=\"250\" height=\"140\" class=\"thumb\"></a>

当我注意到这个问题时,我正在使用TinyMCE(WYSIWYG编辑器),认为它导致了这个问题,但事实并非如此,因为我已将其删除,而且我仍然不断地将这些HTML混乱。

1 个答案:

答案 0 :(得分:1)

Magic quotes是一项弃用的PHP功能,最初旨在防止针对Web应用程序安全性的SQL injection攻击。您的网络托管服务商可能会启用魔术报价。

为了安全起见,开发人员在SQL语句中包含用户输入时应使用mysqli和PDO扩展的“预准备语句”功能。如果由于某种原因无法实现(例如,这些较新的扩展在特定Web主机上不可用),开发人员应该正确使用适当的MySQL转义功能(例如mysql_real_escape_string())。

您可以尝试在php.ini或.htaccess中关闭魔术引号,看看斜线是否消失;但是,请确保您的应用程序首先防止SQL注入攻击。