PHP问题 - 当插入</到数据库时,它呈现为代码

Asa*_*saf 1 php mysql database

嘿,我拥有http://ilikeyou.tk/这是一个类似facebook的网站.基本上,用户可以在Facebook上添加短语和/或照片.最近,当我测试了一些东西时,我发现当我</ 在文本框中插入并创建页面时,它会与类似列表混淆.(您可以尝试发布</并返回主页,向下滚动到'最近喜欢'并观看它)在Twitter和Facebook这样的网站中,这种东西永远不会发生..所以可能有一个解决方案..有什么建议吗?

PS; 此外,当我尝试插入照片链接(http://profile.ak.fbcdn.net/hprofile-ak-snc4/188178_139794909415037_3755895_n.jpg)时,整个索引页面都会关闭(我仍然可以去像ilikeyou这样的页面. tk/1 /但无法访问ilikeyou.tk ...).从数据库中删除链接时,它再次正常工作.

P.S2; 对不起,我的英语不好

提前致谢.

Jon*_*Jon 6

htmlspecialchars在将数据显示在页面上之前,您需要调用来自数据库的所有数据.如果不这样做,不仅会导致问题,例如您所看到的问题,而且这也是一个很大的安全问题:它允许对您的应用程序进行跨站点脚本(XSS)攻击.

因此,如果您$phrase从任何地方(不仅是您的数据库)进入,那么这样做是错误的:

echo $phrase;
Run Code Online (Sandbox Code Playgroud)

你必须这样做:

echo htmlspecialchars($phrase);
Run Code Online (Sandbox Code Playgroud)

您可以在SO或Google上搜索"XSS"或"跨站点脚本"以获取更多信息.