08-05
19

dede代码分析2:config_base.php

dede本来的源码中已经有很多的注释了,

自己的用的是//:

CODE:

<?php

//:config_base.php

/*************************************************

本文件的信息不建议用户自行更改,否则发生意外自行负责

**************************************************/

//:显示除去 E_NOTICE 之外的所有错误信息

error_reporting(E_ALL & ~E_NOTICE);

/*:定义常量

dirname -- 返回路径中的目录部分  __FILE__ 是当前路径+文件名

dirname(__FILE__)返回当前文件路径的路径部分

*/

define('DEDEINC',dirname(__FILE__));

//:禁止用户提交某些特殊变量 (这块希望高手仔细分析用途)

$ckvs = Array('_GET','_POST','_COOKIE','_FILES');

$ckvs4 = Array('HTTP_GET_VARS','HTTP_POST_VARS','HTTP_COOKIE_VARS','HTTP_POST_FILES');

//PHP小于4.1版本的兼容性处理

$phpold = 0;

foreach($ckvs4 as $_k=>$_v){

    if(!@is_array(${$_v})) continue;

    if(!@is_array(${$ckvs[$_k]})){

        ${$ckvs[$_k]} = ${$_v}; unset(${$_v}); $phpold=1;

    }

}

//全局安全检测

foreach($ckvs as $ckv){

   foreach($$ckv AS $_k => $_v){

     //: 如果用户提交的变量中有cfg_或globals等全局或系统变量,则注销

      if(eregi("^(globals|cfg_)",$_k)) unset(${$ckv}[$_k]);

   }

}

//检测上传的文件中是否有危险代码,有直接退出处理

if( !isset($cfg_NoUploadSafeCheck) ){

if (is_array($_FILES)) {

foreach($_FILES AS $_name => $_value){

    ${$_name} = $_value['tmp_name'];

    $_fp = @fopen(${$_name},'r');

    $_fstr = @fread($_fp,filesize(${$_name}));

    @fclose($_fp);

   //: 如果文件中有<?,<%,则退出

    if($_fstr!='' && ereg("<(?|%)",$_fstr)){

       echo "你上传的文件中含有危险内容,程序终止处理!";

       exit();

    }

}

}}

//载入用户配置的系统变量

require_once(DEDEINC."/config_hand.php");

//设置站点维护状态开启后,程序文件最上方有 $cfg_IsCanView=true; 则该程序仍访问

if(!isset($cfg_IsCanView)) $cfg_IsCanView = false;

if(isset($cfg_websafe_open) && $cfg_websafe_open=='Y' && !$cfg_IsCanView){

    include(DEDEINC.'/alert.htm');

    exit();

}

//php5.1版本以上时区设置

if(!ereg("[^0-9-]",$cfg_cli_time)) $cfg_cli_time = 'Etc/GMT'.$cfg_cli_time;

function_exists('date_default_timezone_set') ? @date_default_timezone_set($cfg_cli_time) : '';

if(!isset($cfg_needFilter)) $cfg_needFilter = false;

$cfg_isUrlOpen = @ini_get("allow_url_fopen");

//安全模式检测

$cfg_isSafeMode = @ini_get("safe_mode");

if($cfg_isSafeMode){

    $cfg_os = (isset($_ENV['OS']) ? strtolower($_ENV['OS']) : '');

    if($cfg_os=='windows_nt') $cfg_isSafeMode = false;

}

if($phpold==1){ //低版本强制检查变量

    $cfg_isMagic = false;

    $cfg_registerGlobals = false;

}else{

    $cfg_registerGlobals = @ini_get("register_globals");

                     //: ini_get()取得一些配置选项

                     $cfg_isMagic = @ini_get("magic_quotes_gpc");

}

//检测系统是否注册外部变量

if(!$cfg_isMagic) require_once(DEDEINC."/config_rglobals_magic.php");

else if(!$cfg_registerGlobals || $cfg_needFilter) require_once(DEDEINC."/config_rglobals.php");

//Session保存路径

$sessSavePath = DEDEINC."/../data/sessions/";

if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }

//对于仅需要简单SQL操作的页面,引入本文件前把此$__ONLYDB设为true,可避免引入不必要的文件

if(!isset($__ONLYDB)) $__ONLYDB = false;

if(!isset($__ONLYCONFIG)) $__ONLYCONFIG = false;

//站点根目录

//$cfg_basedir = str_replace("\","/",substr(DEDEINC,0,-8));

$ndir = str_replace("\","/",dirname(__FILE__));

$cfg_basedir = eregi_replace($cfg_cmspath."/include[/]{0,1}$","",$ndir);

if($cfg_multi_site == 'Y') $cfg_mainsite = $cfg_basehost;

else  $cfg_mainsite = "";

//数据库连接信息

$cfg_dbhost = 'localhost';

$cfg_dbname = 'believecn';

$cfg_dbuser = 'root';

$cfg_dbpwd = '000000';

$cfg_dbprefix = 'cn_';

$cfg_db_language = 'gbk';

//模板的存放目录

$cfg_templets_dir = $cfg_cmspath.'/templets';

$cfg_templeturl = $cfg_mainsite.$cfg_templets_dir;

//插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序

$cfg_plus_dir = $cfg_cmspath.'/plus';

$cfg_phpurl = $cfg_mainsite.$cfg_plus_dir;

//会员目录

$cfg_member_dir = $cfg_cmspath.'/member';

$cfg_memberurl = $cfg_mainsite.$cfg_member_dir;

//会员个人空间目录#new

$cfg_space_dir = $cfg_cmspath.'/space';

$cfg_spaceurl = $cfg_basehost.$cfg_space_dir;

$cfg_medias_dir = $cfg_cmspath.$cfg_medias_dir;

//上传的普通图片的路径,建议按默认

$cfg_image_dir = $cfg_medias_dir.'/allimg';

//上传的缩略图

$ddcfg_image_dir = $cfg_medias_dir.'/litimg';

//专题列表的存放路径

$cfg_special = $cfg_cmspath.'/special';

//用户投稿图片存放目录

$cfg_user_dir = $cfg_medias_dir.'/userup';

//上传的软件目录

$cfg_soft_dir = $cfg_medias_dir.'/soft';

//上传的多媒体文件目录

$cfg_other_medias = $cfg_medias_dir.'/media';

//圈子目录

$cfg_group_path = $cfg_cmspath.'/group';

//书库目录

$cfg_book_path = $cfg_cmspath.'/book';

//问答模块目录

$cfg_ask_path = $cfg_cmspath.'/ask';

//圈子网址

$cfg_group_url = $cfg_mainsite.$cfg_group_path;

//书库网址

$cfg_book_url = $cfg_mainsite.$cfg_book_path;

//问答模块网址

$cfg_ask_url = $cfg_mainsite.$cfg_ask_path;

//软件摘要信息,****请不要删除本项**** 否则系统无法正确接收系统漏洞或升级信息

//-----------------------------

$cfg_softname = "织梦内容管理系统";

$cfg_soft_enname = "DedeCms V5 2008版";

$cfg_soft_devteam = "织梦团队";

$cfg_version = '5_0_1_GBK';

//默认扩展名,仅在命名规则不含扩展名的时候调用

$art_shortname = '.html';

//文档的默认命名规则

$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}.html';

//新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行

$cfg_dir_purview = 0755;

//引入数据库类和常用函数

require_once(DEDEINC.'/config_passport.php');

//:用于操作数据库

if(!$__ONLYCONFIG) include_once(DEDEINC.'/pub_db_mysql.php');

//:可供用户使用的函数集合

if(!$__ONLYDB) include_once(DEDEINC.'/inc_functions.php');

?>



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 488
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭