define是不能跨页面的,但是最近看一个开源的PHP项目它是这样的:比如a.php :直接define('IN_TM', TRUE);
b.php直接<?php
if(!defined('IN_TM'))
{
exit('Access Denied');
}
if($_SESSION["admin"]!="Silence")
{
include template('login.htm');
exit;
}。。
就完全没用include包含!但是我这样模拟的时候define是不能跨页面的!它还有什么设置使得'IN_TM'在另一个页面有效吗?
类似于DISCUZ的防止地址栏直接访问后台文件又是怎么实现的呢?
b.php直接<?php
if(!defined('IN_TM'))
{
exit('Access Denied');
}
if($_SESSION["admin"]!="Silence")
{
include template('login.htm');
exit;
}。。
就完全没用include包含!但是我这样模拟的时候define是不能跨页面的!它还有什么设置使得'IN_TM'在另一个页面有效吗?
类似于DISCUZ的防止地址栏直接访问后台文件又是怎么实现的呢?
解决方案 »
- 网站速度慢,请教web开发高手!!谢谢~
- 跪求php model类
- eclipsePHP3 有svn功能么?如何使用?
- php 5.3.5版本 安装pear 双击 go-pear.bat 报错下
- mvc模式下,如何将控制器模块化
- 求一伪静态写法。
- 写一个php文件 比如 baidu.com/a.php?url=google.com 会立即跳转到google
- 'php 限制在一定时间内提交 有什么好方法么?谢谢!
- PHP生成html后天天被人挂马,安全问题
- tp数组输出
- 请大家进来讨论下,windows 系统下 nginx+php 是怎么解决并发访问问题的?
- PHP导出为excel文件时,身份证却以科学计数法显示,如何正常显示
那么他就是利用了 php.ini 中的 auto_prepend_file 其实只要项目能运行, 你只需 打印出 get_included_files 的结果就知道什么文件被嵌入了
<?php
if(!defined('IN_TM'))
{
exit('Access Denied');
}a.php
<?php
define('IN_TM', TRUE);
include 'b.php';访问 b.php 必须通过访问 a.php 完成,否则就 Access Denied