我遇到的问题如下:我有一个MySQL表,其中包含我希望在我的网站上显示的页面内容的详细信息.我的一个页面的内容但是我想包含一些要执行的实际PHP代码,而不仅仅是作为字符串打印.例如:
require_once("Class.php");
Class::Function("Some Text For a Parameter");
我希望这个代码在返回sql查询时以某种方式执行,但就目前而言,它只是打印出该文本.有没有办法实现我想要的?
谢谢你的时间,
问候,
斯蒂芬.
解决方法:
它们是实现动态元素存储的几种方法:
> eval(str):您可以将来自您数据库的任何字符串评估为php代码.如果数据库中存储的内容直接来自用户输入字段,则这不是很明智.你永远不知道将要插入什么,它可能是有害的代码(有害于您的服务器的安全性)
> save / include:您可以将来自数据库的内容保存在临时文件中,并在PHP代码中包含()该文件.如果任何人都可以在您的数据库中存储任何内容,这似乎并不安全
>使用具有合理命令占用空间的模板引擎,如smarty或mustache.您可以将模板存储在数据库中并执行它们.如果您信任模板语言的实现(例如,在smarty中禁用本机php调用),模板将需要具有正确的语法才能开始执行
作为一般的经验法则,很难保护这种动态的PHP代码包含,所以它应该被认为是不好的做法.
您应该考虑您将信任解析器/编译器和执行引擎的DSL(特定于域的语言).
如果安全性不是问题(例如,因为您的应用程序不会公开),那么将php片段存储在数据库中是完全有效的.
我希望这能帮到您
杰罗姆瓦格纳
标签:php,mysql 来源: https://codeday.me/bug/20190721/1496603.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。