如何在模板视图中禁用php引擎

时间:2011-10-19 14:36:12

标签: php codeigniter

我使用模板解析器类来渲染我的视图。因为视图对于某些用户是可编辑的,所以我需要在视图中禁用php解释器。

有什么方法可以做到?

问候!

修改

  • 我在views目录中添加了.htaccess文件:
AddType text/plain .php
  • 我在_ci_load()函数中扩展了CI_Loader替换php开始标记(在php标记之前添加了斜杠)。

现在php无法在视图中使用。

2 个答案:

答案 0 :(得分:0)

(假设你正在使用Apache)

您可以使用 .tpl 扩展名保存文件,并添加类似...

的内容
AddType text/plain .tpl

...到您的Apache httpd.conf文件(或者可能是.htaccess)。

不会当然会阻止人们在模板中添加PHP代码,如果他们觉得这样,但它应该意味着如果在网络上查看文件将不会解释该代码-服务器;但是,这些文件中输入的任何原始PHP代码都以纯文本形式提供给任何找到URI的人(www.yoursite.ext / templates / a_template.tpl) - 如果由于某些不明原因它有类似的东西可能会非常糟糕define('DB_PASSWORD', "DBP@55w0rd");在那里(好的,这是非常错的,但你明白了。)

更好的解决方案是将 tpl 文件存储在网络树之外,或者存储在受.htaccess Deny from all保护的文件夹中 - 您的PHP脚本仍然可以在中提取它们但是它们不会被任何人通过http直接访问,因此你的视图中的任何PHP都不会被解释为永远不会被访问。

或者,如果您对视图引擎很灵活,请查看PHPTAL:http://phptal.org/

答案 1 :(得分:0)

我不明白你的问题。

您的解析器是否识别模板中的PHP?如果是这样 - 禁用将如何帮助?如果不是 - PHP对你的模板做了什么?他们有.php扩展吗?