php二次開發難嗎,destoon php os,destoon運行流程二次開發必看

 2023-10-20 阅读 28 评论 0

摘要:destoon系統采用B/S架構,MVC模式開發。融入了模型化、模板、緩存、AJAX、SEO等前沿技術下面是運行流程,雖然版本有更新但大體上是沒有變化太多的//代碼首先包含common.inc.php文件//在common.inc.php文件中,首先定義常量。define('IN_DESTOON',?true);d

destoon系統采用B/S架構,MVC模式開發。融入了模型化、模板、緩存、AJAX、SEO等前沿技術

下面是運行流程,雖然版本有更新但大體上是沒有變化太多的//代碼首先包含common.inc.php文件

//在common.inc.php文件中,首先定義常量。

define('IN_DESTOON',?true);

define('IN_ADMIN',?defined('DT_ADMIN')???true?:?false);

define('DT_ROOT',?str_replace("\\",?'\/',?dirname(__FILE__)));

if?(defined('DT_REWRITE'))?{

include?DT_ROOT?.?'/include/rewrite.inc.php';

}

//是否定義了url偽靜態?

//網站整體配置信息

$CFG?=?array();

//-----------------網站配置文件

require?DT_ROOT?.?'/config.inc.php';

define('DT_PATH',?$CFG['url']);

define('DT_DOMAIN',?$CFG['cookie_domain']???substr($CFG['cookie_domain'],?1)?:?'');

define('DT_WIN',?strpos(strtoupper(PHP_OS),?'WIN')?!==?false???true?:?false);

define('DT_CHMOD',?($CFG['file_mod']?&&?!DT_WIN)???$CFG['file_mod']?:?0);

define('DT_URL',?$CFG['url']);?//Fox?3.x

define('DT_LANG',?$CFG['language']);

define('DT_KEY',?$CFG['authkey']);

define('DT_CHARSET',?$CFG['charset']);

define('DT_CACHE',?$CFG['cache_dir']???$CFG['cache_dir']?:?DT_ROOT?.?'/file/cache');

define('DT_SKIN',?DT_PATH?.?'skin/'?.?$CFG['skin']?.?'/');

define('SKIN_PATH',?DT_PATH?.?'skin/'?.?$CFG['skin']?.?'/');?//For?2.x

define('VIP',?$CFG['com_vip']);

define('errmsg',?'Invalid?Request');

//隨后加載網站基本功能

$L?=?array();

include?DT_ROOT?.?'/lang/'?.?DT_LANG?.?'/lang.inc.php';?//語言信息

require?DT_ROOT?.?'/version.inc.php';

require?DT_ROOT?.?'/include/global.func.php';?//--------全局函數

require?DT_ROOT?.?'/include/tag.func.php';?//-----------標簽函數

require?DT_ROOT?.?'/api/im.func.php';?//----------------聊天工具

require?DT_ROOT?.?'/api/extend.func.php';?//------------自己寫的擴展函數

if?(!$MQG?&&?$_POST)?{

$_POST?=?daddslashes($_POST);

}

if?(!$MQG?&&?$_GET)?{

$_GET?=?daddslashes($_GET);

}

if?(function_exists('date_default_timezone_set'))?{

date_default_timezone_set($CFG['timezone']);

}

$DT_PRE??=?$CFG['tb_pre'];

$DT_QST??=?$_SERVER['QUERY_STRING'];?//----------------querystring

$DT_TIME?=?time()?+?$CFG['timediff'];?//--------------當前時間

$DT_IP???=?get_env('ip');

$DT_URL??=?get_env('url');

$DT_REF??=?get_env('referer');

$DT_BOT??=?is_robot();

//鏈接數據庫,建立緩存。

header("Content-Type:text/html;charset="?.?DT_CHARSET);

require?DT_ROOT?.?'/include/db_'?.?$CFG['database']?.?'.class.php';?//加載數據庫類

require?DT_ROOT?.?'/include/cache_'?.?$CFG['cache']?.?'.class.php';?//加載緩存類

if?($_POST)?{

extract($_POST,?EXTR_SKIP);

}

//解析post請求的數據

if?($_GET)?{

extract($_GET,?EXTR_SKIP);

}

//解析get請求的數據

$db_class?=?'db_'?.?$CFG['database'];

$db???????=?new?$db_class;

$db->halt?=?(DT_DEBUG?||?IN_ADMIN)???1?:?0;

$db->pre??=?$CFG['tb_pre'];

$db->connect($CFG['db_host'],?$CFG['db_user'],?$CFG['db_pass'],?$CFG['db_name'],?$CFG['db_expires'],?$CFG['db_charset'],?$CFG['pconnect']);

$dc??????=?new?dcache();

$dc->pre?=?$CFG['cache_pre'];

//加載模塊的基本配置

$DT????=?$MOD????=?$EXT????=?$CSS????=?$DTMP????=?$CAT????=?$ARE????=?$AREA????=?array();

$CACHE?=?cache_read('module.php');

if?(!$CACHE)?{

//沒有緩存模塊,就讀取緩存模塊。

require_once?DT_ROOT?.?'/admin/global.func.php';

require_once?DT_ROOT?.?'/include/post.func.php';

require_once?DT_ROOT?.?'/include/cache.func.php';

cache_all();

$CACHE?=?cache_read('module.php');

}

$DT?????=?$CACHE['dt'];

$MODULE?=?$CACHE['module'];

$EXT????=?cache_read('module-3.php');

//加載模塊,讀取模塊信息,引入模塊文件

if?(!isset($moduleid))?{

$moduleid?=?1;

$module???=?'destoon';

}?else?if?($moduleid?==?1)?{

$module?=?'destoon';

}?else?{

$moduleid?=?intval($moduleid);

isset($MODULE[$moduleid])?or?dheader(DT_PATH);

$module?=?$MODULE[$moduleid]['module'];

$MOD????=?$moduleid?==?3???$EXT?:?cache_read('module-'?.?$moduleid?.?'.php');

include?DT_ROOT?.?'/lang/'?.?DT_LANG?.?'/'?.?$module?.?'.inc.php';

}

$forward?=?isset($forward)???urldecode($forward)?:?$DT_REF;?//------------來源頁面

$action??=?isset($action)???trim($action)?:?'';?//-------------動作指令

//判斷用戶登錄

$destoon_auth?=?get_cookie('auth');

if?($destoon_auth)?{

$_dauth?=?explode("t",?decrypt($destoon_auth,?md5(DT_KEY?.?$_SERVER['HTTP_USER_AGENT'])));

//print_r($_dauth);SELECT?userid,username,groupid,admin?FROM??destoon_member

$_userid???=?isset($_dauth[0])???intval($_dauth[0])?:?0;

$_username?=?isset($_dauth[1])???trim($_dauth[1])?:?'';

$_groupid??=?isset($_dauth[2])???intval($_dauth[2])?:?3;

$_admin????=?isset($_dauth[4])???intval($_dauth[4])?:?0;

if?($_userid?&&?!defined('DT_NONUSER'))?{

$_password?=?isset($_dauth[3])???trim($_dauth[3])?:?'';

$user??????=?$db->get_one("SELECT??username,passport,company,truename,password,groupid,email,message,chat,sound,online,sms,credit,money,loginip,admin,aid,edittime,trade??FROM?{$DT_PRE}member?WHERE?userid=$_userid");

if?($user?&&?$user['password']?==?$_password)?{

if?($user['groupid']?==?2)?{

dalert(lang('message->common_forbidden'));

}

//禁止用戶訪問的組別

extract($user,?EXTR_PREFIX_ALL,?'');

if?($user['loginip']?!=?$DT_IP?&&?($DT['ip_login']?==?2?||?($DT['ip_login']?==?1?&&?IN_ADMIN)))?{

//單點登錄,判斷ip

$_userid?=?0;

set_cookie('auth',?'');

dalert(lang('message->common_login',?array($user['loginip'])),?DT_PATH);

}

}?else?{

//登錄失敗

$_userid?=?0;

if?($db->linked?&&?!isset($swfupload)?&&?strpos($_SERVER['HTTP_USER_AGENT'],?'Flash')?===?false)?{

set_cookie('auth',?'');

}

}

unset($destoon_auth,?$user,?$_dauth,?$_password);

}

}

if?($_userid?==?0)?{

$_groupid??=?3;

$_username?=?'';}

if?(!IN_ADMIN)?{

if?($_groupid?==?1)?{

include?DT_ROOT?.?'/module/member/admin.inc.php';

}

if?($_userid?&&?!defined('DT_NONUSER'))?{

$db->query("REPLACE?INTO?{$DT_PRE}online??(userid,username,ip,moduleid,online,lasttime)?VALUES??('$_userid','$_username','$DT_IP','$moduleid','$_online','$DT_TIME')");

}?else?{

if?(timetodate($DT_TIME,?'i')?==?10)?{

$lastime?=?$DT_TIME?-?$DT['online'];

$db->query("DELETE?FROM?{$DT_PRE}online?WHERE??lasttime

}

}

}

$MG???????=?cache_read('group-'?.?$_groupid?.?'.php');?//讀取用戶組別配置

$_areaids?=?'';

$_areaid??=?array();

if?($DT['city'])?{

$AREA?or?$AREA?=?cache_read('area.php');

if?($_aid)?{

$_areaids?=?$AREA[$_aid]['child']???$AREA[$_aid]['arrchildid']?:?$_aid;

$_areaid??=?explode(',',?$_areaids);

}

}?else?{

$_aid?

}

$session?=?new?dsession();

require?DT_ROOT?.?'/admin/global.func.php';

require?DT_ROOT?.?'/include/post.func.php';

require_once?DT_ROOT?.?'/include/cache.func.php';

isset($file)?or?$file?=?'index';

$secretkey????????????=?'admin_'?.?strtolower(substr($CFG['authkey'],?-6));

//echo?$secretkey;exit;

if?($DT['authadmin']?==?'session')?{

$_destoon_admin?=?isset($_SESSION[$secretkey])???intval($_SESSION[$secretkey])?:?0;

}?else?{

$_destoon_admin?=?get_cookie($secretkey);

$_destoon_admin?=?$_destoon_admin???intval($_destoon_admin)?:?0;

}

$_founder?=?$CFG['founderid']?==?$_userid???$_userid?:?0;

$_catids??=?$_childs??=?'';

$_catid???=?$_child???=?array();

if?($file?!=?'login')?{

if?($_groupid?!=?1?||?$_admin?

msg('',?'?file=login&forward='?.?urlencode($DT_URL));

}

//判斷用戶是否已經登錄?如果未登錄,直接跳轉到登錄頁面。防止用戶構造url。

if?(!admin_check())?{

admin_log(1);

$db->query("DELETE?FROM?{?$db->pre}admin?WHERE?userid=$_userid?AND??url='?"?.?$DT_QST?.?"'");

msg('警告!您無權進行此操作?Error(00)');

}

}

//是否記錄日志

if?($DT['admin_log']?&&?$action?!=?'import')?{

admin_log();

}

if?($DT['admin_online'])?{

admin_online();

}

$psize?=?isset($psize)???intval($psize)?:?0;

if?($psize?>?0?&&?$psize?!=?$pagesize)?{

$pagesize?=?$psize;

$offset???=?($page?-?1)?*?$pagesize;

}

if?($module?==?'destoon')?{

(include?DT_ROOT?.?'/admin/'?.?$file?.?'.inc.php')?or?msg();

}?else?{

echo?$file?.?'|'?.?$module;

include?DT_ROOT?.?'/module/'?.?$module?.?'/common.inc.php';?//加載模塊下的common文件

(include?MD_ROOT?.?'/admin/'?.?$file?.?'.inc.php')?or?msg();?//加載模塊文件

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/152042.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息