Discuz!核心代码分析(1)
本站原创,未经许可严谨转载
common.inc.php文件
<?php
error_reporting(0);//屏蔽脚本错误
set_magic_quotes_runtime(0);//关闭php的魔法引用
$mtime = explode(' ', microtime());//返回当前Unix 时间戳和微秒数并使用空格作为分隔符拆分到数组$mtime
$discuz_starttime = $mtime[1] + $mtime[0];//将页面执行的开始时刻的时间戳保存至$discuz_starttime
define('SYS_DEBUG', FALSE);//当前脚本是否运行在系统出错状态
define('IN_DISCUZ', TRUE);//定义DZ程序代码的运行范围
define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));//DZ脚本程序的根目录
define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());//当前php运行环境中对get,post.cookies的变量值是否执行php魔法应用的设置
!defined('CURSCRIPT') && define('CURSCRIPT', '');//检查当前是否定义CURSCRIPT常量,若没有将其定义为空
if(PHP_VERSION < '4.1.0') {
/*
本段代码:保持版本低于4.1.0的php环境的预定义变量名的兼容性
在4.1.0前的版本,要么依赖register_globals或$HTTP_*_VARS的形式变量
在4.1.0后的版本,$_* 如($_GET)才生效
*/
$_GET = &$HTTP_GET_VARS;
$_POST = &$HTTP_POST_VARS;
$_COOKIE = &$HTTP_COOKIE_VARS;
$_SERVER = &$HTTP_SERVER_VARS;
$_ENV = &$HTTP_ENV_VARS;
$_FILES = &$HTTP_POST_FILES;
}
if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
/*
本段代码:检测是否设置$_REQUEST['GLOBALS']或$_FILES['GLOBALS'],若存在,
程序将提示尝试请求的数据可能是不脏数据,并退出....
*/
exit('Request tainting attempted.');
}
require_once DISCUZ_ROOT.'./include/global.func.php';//载入global.func.php文件
getrobot();//此自定义函数判断客户端HTTP_USER_AGENT的值而得知正在访问的客户端是否为搜索引擎机器人
if(defined('NOROBOT') && IS_ROBOT) {
/*
若定义了NOROBOT常量或
检测访问当前页的客户端是否为搜索引擎机器人,若是机器人则退出....
最终含义为不希望被搜索引擎看到的页面....
*/
exit(header("HTTP/1.1 403 Forbidden"));
}