类discuz_application中_init_config方法

2025-10-10 00:50:58

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’;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:136
  • 阅读量:138
  • 阅读量:82
  • 阅读量:105
  • 阅读量:36
  • 猜你喜欢