defined() 函数检查某常量是否存在 , 存在的话返回true ;
在A页面使用define定义常量x , 在B页面使用defined来确认常量存不存在 , 如果不存在 , 就是非法包含.
通常define和defined配合使用 , 可以用来控制文件的访问权限,比如,我们不希望一个模板文件被直接通过链接地址被别人访问。我们可以在每个模板文件头,写上defined('XXX') or die()。
==========
在很多页面 经常会看到下面 两句,是为了不让人随意远程调用.
1、define('IN_SYS'), true); //定义常量
一般在一些特定的入口页面 才会有这个 代码,
就是说 必须从 这个页面访问。
2、defined('IN_SYS')); //检查 是否定义了 常量
这个代码后面应该还有个 结束程序的代码。
禁止 这个文件单独执行的 或被访问。 都是被 include 到 其他页面的。
如果去掉了 “defined('IN_SYS')); 这一句,有些本该导入的 PHP文件 如果别人直接打开的话 就会出现程序错误, 显示错误是不应该的。别人可以根据错误信息 也能得到服务器相关信息。还有一些模板文件 如果没有加上这个代码, 直接就可以访问 查看,