类discuz_application中_init_config方法

 时间:2026-02-14 10:23:28

1、$_config = array();

@include DISCUZ_ROOT.'./config/config_global.php';

        加载配置文件,config文件夹下面有配置config_global_default.php。如果没看源代码小编还以为config_global_default.php是配置文件,config_global.php是备份文件呢。配置文件第一句就是$_config = array();,方法第一句定义了,配置文件也定义了,下面解释。

2、if(empty($_config)){

    if(!file_exists(DISCUZ_ROOT.'./data/install.lock')) {

        header('location: install');

        exit;

     } else {

         system_error('config_notfound');

     }

}

        $_config数组配置文件是否为空,这儿只判断为空,而不判断是否存在,因为开头第一句代码已经定义了$_config = array()。

        file_exists(DISCUZ_ROOT.'./data/install.lock')是否有install.lock,有表示正常安装,没表示不正常安装。

        源代码包config下有config_global_default.php,安装成功后有config_global.php文件。

       函数system_error以后再说。

3、if(empty($_config['security']['authkey'])) {  

    $_config['security']['authkey']=md5($_config['cookie']['cookiepre'].$_config['db'][1]['dbname']);

}

       密钥,这儿加密方式和刚开始安装install不同。$authkey = substr(md5($_SERVER['SERVER_ADDR'].$_SERVER['HTTP_USER_AGENT'].$dbhost.$dbuser.$dbpw.$dbname.$username.$password.$pconnect.substr($timestamp, 0, 6)), 8, 6).random(10);authkey算法存在安全漏洞,漏洞在Discuz_X3.4中被修复。

4、if(empty($_config['debug']) || !file_exists(libfile('function/debug'))) {

    define('DISCUZ_DEBUG', false);

    error_reporting(0);

}

        $_config['debug'],libfile('function/debug')小编这儿都不存在,执行if体。error_reporting(0);禁用错误报告。

5、define('STATICURL',!empty($_config['output']['staticurl'])?$_config['output']['staticurl'] : 'static/');

$this->var['staticurl'] = STATICURL;

       staticurl,静态路径,不是完整路径,仅仅是static/。里面放的都是css,js,图片。

6、$this->config = & $_config;

$this->var['config'] = & $_config;

       $_config地址复制给属性。这儿干嘛赋值给两个属性呀?

7、if(substr($_config['cookie']['cookiepath'], 0, 1) != '/') {   

    $this->var['config']['cookie']['cookiepath']='/'.$this->var['config']['cookie']['cookiepath'];

}

        cookiepath 有效的服务器路径。 设置成 '/' 时,Cookie 对整个域名 domain 有效。 如果设置成 '/foo/', Cookie 仅仅对 domain 中 /foo/ 目录及其子目录有效。

        测试一下,配置文件config_global.php中$_config['cookie']['cookiepath'] = 'test';$this->var['config']['cookie']['cookiepath']=’/test’;

  • 为什么说海南美
  • 刀剑2马战技能解析之枪技
  • 锻炼心理素质小窍门
  • 外卖店怎么开
  • 花生壳嵌入路由器设置
  • 热门搜索
    百无聊赖是什么意思 依依惜别的意思 去香港旅游需要什么手续 京a8车牌号代表什么 同房后出血检查什么 现在手机什么牌子好 注册集团公司需要什么条件 找什么工作有前途 祝福自己 蹉跎岁月是什么意思