2012-04-08 72 views
0

retreving所以这里后搞砸了是我的问题:textarea的内容从数据库

我已经编写行政管理区域为我的网站,它有哪些应该制造新闻的网站一个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

你在使用PHP吗?那么你应该使用PHP的'stripslashes()'函数来去掉斜线。 – Config 2012-04-08 08:27:49

+0

@Stardev,是的我使用PHP和你展示的功能,我修复了一切!谢了哥们。 – Aborted 2012-04-08 08:36:14

回答

1

Magic quotes是一个不推荐使用的PHP功能,最初旨在防止针对Web应用程序安全的SQL injection攻击。您的虚拟主机可能已启用魔术引号。

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

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