Discuz!7.2 common.inc.php 學習
error_reporting(0); //禁用錯誤報告
//set_magic_quotes_runtime:所有的溢出字符,當遇到反斜杆、單引號,將會自動加上一個反斜杆,保護系統和數據庫的安全。
//set_magic_quotes_runtime(0) 爲關閉。
set_magic_quotes_runtime(0);
//獲取時間戳數組
$mtime = explode(' ', microtime());
$discuz_starttime = $mtime[1] + $mtime[0];
define('SYS_DEBUG', FALSE);//調試?
define('IN_DISCUZ', TRUE);//未知
define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));//當前目錄 -7是爲了扣除當前文件夾/include
define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());//檢測是否開啓set_magic_quotes_runtime
//!defined('CURSCRIPT') && define('CURSCRIPT', '');
//$_GET 等是在4.0後纔有
if(PHP_VERSION $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value);
}
}
if (!MAGIC_QUOTES_GPC && $_FILES) {
$_FILES = daddslashes($_FILES);
}
$charset = $dbs = $dbcharset = $forumfounders = $metakeywords = $extrahead = $seodescription = $mnid = '';
$plugins = $admincp = $scriptlang = $forum = $thread = $language = $jsmenu = $actioncode = $modactioncode = $pluginclasses = $hooks = $lang = array();
$_DCOOKIE = $_DSESSION = $_DCACHE = $_DPLUGIN = $advlist = array();
//配置信息
require_once DISCUZ_ROOT.'./config.inc.php';
// 論壇訪問頁面防禦開關,可避免用戶通過非法的url地址對本站用戶造成危害,建議打開。1=打開 0關閉
//過濾<和“?貌似能用html編碼繞過吧
if($urlxssdefend && !empty($_SERVER['REQUEST_URI'])) {
$temp = urldecode($_SERVER['REQUEST_URI']);
if(strpos($temp, ' $val) {
if(substr($key, 0, $prelength) == $cookiepre) {
$_DCOOKIE[(substr($key, $prelength))] = MAGIC_QUOTES_GPC ? $val : daddslashes($val);
}
}
unset($prelength, $_request, $_key, $_value);
/*
* 這段不明真相
*/
$inajax = !empty($inajax);
$handlekey = !empty($handlekey) ? htmlspecialchars($handlekey) : '';
$timestamp = time();
/*論壇防禦級別,可防止大量的非正常請求造成的拒絕服務***
防護大量非正常請求造成的拒絕服務***,
0=關閉, 1=cookie 刷新限制, 2=限制代理訪問, 4=二次請求, 8=回答問題(第一次訪問時需要回答問題)
組合爲: 1|2, 1|4, 2|8, 1|2|4...
*/
if($attackevasive && (!define('CURSCRIPT') || CURSCRIPT != 'seccode')) {
require_once DISCUZ_ROOT.'./include/security.inc.php';
}
//這樣會不會被注入?
require_once DISCUZ_ROOT.'./include/db_'.$database.'.class.php';
//當前運行程序或者腳本
$PHP_SELF = dhtmlspecialchars($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);
//當前文件
$BASESCRIPT = basename($PHP_SELF);
list($BASEFILENAME) = explode('.', $BASESCRIPT);
//路徑
$boardurl = htmlspecialchars('http://'.$_SERVER['HTTP_HOST'].preg_replace("//+(api|archiver|wap)?/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');
//獲取真實IP
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
preg_match("/[d.]{7,15}/", $onlineip, $onlineipmatches);
$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
unset($onlineipmatches);
//緩存
$cachelost = (@include DISCUZ_ROOT.'./forumdata/cache/cache_settings.php') ? ' : 'settings';
@extract($_DCACHE['settings']);
/*看暈了。
*BINDDOMAIN在Index.php中設置爲index
*$cachelost爲是否有緩存。$binddomains和$forumdomains是神馬東西?//應該是從cache_settiongs.php獲取
*個人猜測:可能是解決cookie中的域名和現在域名不同出現的問題吧
*/
if(defined('BINDDOMAIN') && BINDDOMAIN && !$cachelost && $binddomains && $forumdomains) {
//繼續不明真相
$loadforum = isset($binddomains[$_SERVER['HTTP_HOST']]) ? max(0, intval($binddomains[$_SERVER['HTTP_HOST']])) : 0;
if($loadforum) {
if(BINDDOMAIN == 'forumdisplay' && $loadforum == $fid) {
header("HTTP/1.1 301 Moved Permanently");
$query_string = preg_replace('/??fid='.$fid.'&?/is', '', $_SERVER['QUERY_STRING']);
//重定向到什麼地方?
dheader("Location: http://$_SERVER[HTTP_HOST]/{$indexname}".($query_string ? "?{$query_string}" : '));
}
if(BINDDOMAIN == 'index') {
$fid = $_GET['fid'] = $_REQUEST['fid'] = $loadforum;
define('CURSCRIPT', 'forumdisplay');
}
} else {
if(BINDDOMAIN == 'forumdisplay' && isset($forumdomains[$fid])) {
$host = $forumdomains[$fid];
header("HTTP/1.1 301 Moved Permanently");
dheader("Location: http://{$host}/{$indexname}");
}
define('CURSCRIPT', BINDDOMAIN);
}
}
//仍然不明真相
if(!defined('CURSCRIPT')) {
define('CURSCRIPT', defined('BINDDOMAIN') ? BINDDOMAIN : ');
}
if(!defined('STAT_ID') && isset($statdisable) && empty($statdisable)) {
define('STAT_ID', $_DCACHE['settings']['statid']);
define('STAT_KEY', $_DCACHE['settings']['statkey']);
}
//開啓gzip壓縮
if($gzipcompress && function_exists('ob_gzhandler') && !in_array(CURSCRIPT, array('p_w_upload', 'wap')) && !$inajax) {
ob_start('ob_gzhandler');
} else {
$gzipcompress = 0;
ob_start();
}
if(!empty($loadctrl) && substr(PHP_OS, 0, 3) != 'WIN') {
//非win系統下的負載
if($fp = @fopen('/proc/loadavg', 'r')) {
list($loadaverage) = explode(' ', fread($fp, 6));
fclose($fp);
//如果大於負載
if($loadaverage > $loadctrl) {
header("HTTP/1.0 503 Service Unavailable");
include DISCUZ_ROOT.'./include/serverbusy.htm';
exit();
}
}
}
//看是否能引用緩存頁面。如果不行就把CURSCRIPT加到$cachelost中
if(in_array(CURSCRIPT, array('index', 'forumdisplay', 'viewthread', 'post', 'topicadmin', 'register', 'archiver'))) {
$cachelost .= (@include DISCUZ_ROOT.'./forumdata/cache/cache_'.CURSCRIPT.'.php') ? ' ': ' '.CURSCRIPT;
}
//實例化數據庫(爲什麼數據庫的類文件這麼早引入現在才實例化)
$db = new dbstuff;
$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset);
$dbuser = $dbpw = $pconnect = $sdb = NULL;
//獲取sid
$sid = daddslashes(($transsidstatus || CURSCRIPT == 'wap') && (isset($_GET['sid']) || isset($_POST['sid'])) ?
(isset($_GET['sid']) ? $_GET['sid'] : $_POST['sid']) :
(isset($_DCOOKIE['sid']) ? $_DCOOKIE['sid'] : '));
//如果CURSCRIPT是p_w_upload 就用GET獲取sid(authcode解密)
CURSCRIPT == 'p_w_upload' && isset($_GET['sid']) && $sid = addslashes(authcode($_GET['sid'], 'DECODE', $_DCACHE['settings']['authkey']));
//訪問者信息加密
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
//又是這種風格。多幾行代碼會死人啊?
//cookie中的auth值按t分割,分別賦給爲$discuz_pw, $discuz_secques, $discuz_uid
list($discuz_pw, $discuz_secques, $discuz_uid) = empty($_DCOOKIE['auth']) ? array('', '', 0) : daddslashes(explode("t", authcode($_DCOOKIE['auth'], 'DECODE')), 1);
$prompt = $sessionexists = $seccode = 0;
//M.M 下面這段我理解成一條SQL語句的一段。ORZ
$membertablefields = 'm.uid AS discuz_uid, m.username AS discuz_user, m.password AS discuz_pw, m.secques AS discuz_secques,
m.adminid, m.groupid, m.groupexpiry, m.extgroupids, m.email, m.timeoffset, m.tpp, m.ppp, m.posts, m.threads, m.digestposts,
m.oltime, m.pageviews, m.credits, m.extcredits1, m.extcredits2, m.extcredits3, m.extcredits4, m.extcredits5,
m.extcredits6, m.extcredits7, m.extcredits8, m.timeformat, m.dateformat, m.pmsound, m.sigstatus, m.invisible,
m.lastvisit, m.lastactivity, m.lastpost, m.prompt, m.accessmasks, m.editormode, m.customshow, m.customaddfeed, m.newbietaskid';
if($sid) {//有sid
if($discuz_uid) {//cookid中有值
//聯合查詢 session 和 members
//上面那串莫名字符派上用場了。果然是sql語句的一段。
$query = $db->query("SELECT s.sid, s.styleid, s.groupid='6' AS ipbanned, s.pageviews AS spageviews, s.lastolupdate, s.seccode, $membertablefields
FROM {$tablepre}sessions s, {$tablepre}members m
WHERE m.uid=s.uid AND s.sid='$sid' AND CONCAT_WS('.',s.ip1,s.ip2,s.ip3,s.ip4)='$onlineip' AND m.uid='$discuz_uid'
AND m.password='$discuz_pw' AND m.secques='$discuz_secques'");
} else {
//cookie中沒有的話只用sessions
$query = $db->query("SELECT sid, uid AS sessionuid, groupid, groupid='6' AS ipbanned, pageviews AS spageviews, styleid, lastolupdate, seccode
FROM {$tablepre}sessions WHERE sid='$sid' AND CONCAT_WS('.',ip1,ip2,ip3,ip4)='$onlineip'");
}
//數據放入_DSESSION
if($_DSESSION = $db->fetch_array($query)) {
//這個變量應該是指代是否在線吧。。
$sessionexists = 1;
if(!empty($_DSESSION['sessionuid'])) {
//查詢members得到一堆值也放入$_DSESSION
$_DSESSION = array_merge($_DSESSION, $db->fetch_first("SELECT $membertablefields
FROM {$tablepre}members m WHERE uid='$_DSESSION[sessionuid]'"));
}
} else {
//上面的上面的SQL語句查詢失敗。則按照無cookie重新查詢
//清除COOKIE(應該是防止僞造cookie吧)
if($_DSESSION = $db->fetch_first("SELECT sid, groupid, groupid='6' AS ipbanned, pageviews AS spageviews, styleid, lastolupdate, seccode
FROM {$tablepre}sessions WHERE sid='$sid' AND CONCAT_WS('.',ip1,ip2,ip3,ip4)='$onlineip'")) {
clearcookies();
$sessionexists = 1;
}
}
}
//不在線
if(!$sessionexists) {
if($discuz_uid) {//但是cookie存在
//cookie無法登陸。系僞造。清除cookie
if(!($_DSESSION = $db->fetch_first("SELECT $membertablefields, m.styleid
FROM {$tablepre}members m WHERE m.uid='$discuz_uid' AND m.password='$discuz_pw' AND m.secques='$discuz_secques'"))) {
clearcookies();
}
}
//判斷是否該IP不允許登陸
if(ipbanned($onlineip)) $_DSESSION['ipbanned'] = 1;
//重新生成sid
$_DSESSION['sid'] = random(6);
$_DSESSION['seccode'] = random(6, 1);
}
//這三行表示看不懂
$_DSESSION['dateformat'] = empty($_DSESSION['dateformat']) || empty($_DCACHE['settings']['userdateformat'][$_DSESSION['dateformat'] -1])? $_DCACHE['settings']['dateformat'] : $_DCACHE['settings']['userdateformat'][$_DSESSION['dateformat'] -1];
$_DSESSION['timeformat'] = empty($_DSESSION['timeformat']) ? $_DCACHE['settings']['timeformat'] : ($_DSESSION['timeformat'] == 1 ? 'h:i A' : 'H:i');
$_DSESSION['timeoffset'] = isset($_DSESSION['timeoffset']) && $_DSESSION['timeoffset'] != 9999 ? $_DSESSION['timeoffset'] : $_DCACHE['settings']['timeoffset'];
//清空
$membertablefields = '';
@extract($_DSESSION);
$disableprompt = !empty($_DCOOKIE['disableprompt']) ? explode('|', $_DCOOKIE['disableprompt']) : array();
//這個是上面定義的變量,用途未知
//補:$prompt是members表中字段。不過這段代碼作用仍然不知
if($prompt) {
if($taskon && ($prompt & 8)) {
$prompts['newbietask'] = 1;
$disallowfloat = str_replace('task','', $disallowfloat);
$disallowfloat .= '|newthread|reply';
$editormode = 0;
}
$prompt = 0;
$query = $db->query("SELECT typeid, number FROM {$tablepre}prompt WHERE uid='$discuz_uid'");
while($promptrow = $db->fetch_array($query)) {
if($disableprompt && in_array($promptkeys[$promptrow['typeid']], $disableprompt)) {
continue;
}
$prompt = $promptrow['number'] ? 1 : $prompt;
$prompts[$promptkeys[$promptrow['typeid']]]['new'] = $promptrow['number'];
}
}
if($announcepm && !in_array('announcepm', $disableprompt)) {
$prompts['announcepm']['new'] = $announcepm;
}
//$lastvisit也在member表中,應該是上次訪問時間。-86400應該是24小時前吧
$lastvisit = empty($lastvisit) ? $timestamp - 86400 : $lastvisit;
//這句沒看懂
$timenow = array('time' => gmdate("$dateformat $timeformat", $timestamp + 3600 * $timeoffset),
'offset' => ($timeoffset >= 0 ? ($timeoffset == 0 ? ' : '+'.$timeoffset) : $timeoffset));
if(PHP_VERSION > '5.1') {
//date_default_timezone_set()函數的作用是:設定用於一個腳本中所有日期時間函數的默認時區。
@date_default_timezone_set('Etc/GMT'.($timeoffset > 0 ? '-' : '+').(abs($timeoffset)));
}
$accessadd1 = $accessadd2 = $modadd1 = $modadd2 = $metadescription = $hookscriptmessage = ';
if(empty($discuz_uid) || empty($discuz_user)) {
//未登錄用戶初始化
$discuz_user = $extgroupids = '';
$discuz_uid = $adminid = $posts = $digestposts = $pageviews = $oltime = $invisible
= $credits = $extcredits1 = $extcredits2 = $extcredits3 = $extcredits4
= $extcredits5 = $extcredits6 = $extcredits7 = $extcredits8 = 0;
$groupid = empty($groupid) || $groupid != 6 ? 7 : 6;
} else {
//以登陸用戶
$discuz_userss = $discuz_user;
$discuz_user = addslashes($discuz_user);
//這個也是Member表的數據。作用不明
//組合sql語句
if($accessmasks) {
$accessadd1 = ', a.allowview, a.allowpost, a.allowreply, a.allowgetattach, a.allowpostattach';
$accessadd2 = "LEFT JOIN {$tablepre}access a ON a.uid='$discuz_uid' AND a.fid=f.fid";
}
//這個也是member的數據。字面理解應該是管理員ID之類的吧
if($adminid == 3) {
$modadd1 = ', m.uid AS ismoderator';
$modadd2 = "LEFT JOIN {$tablepre}moderators m ON m.uid='$discuz_uid' AND m.fid=f.fid";
}
}
//這句不明真相
if($errorreport == 2 || ($errorreport == 1 && $adminid > 0)) {
error_reporting(E_ERROR | E_WARNING | E_PARSE);
}
//獲得一個拼裝值。
define('FORMHASH', formhash());
//statstatus在cache_setting.php中。
//後面引用的是網站統計。這個變量應該是標記是否統計流量等信息吧
$statstatus && !$inajax && require_once DISCUZ_ROOT.'./include/counter.inc.php';
//$extra該參數作用不明
$extra = isset($extra) && @preg_match("/^[&=;a-z0-9]+$/i", $extra) ? $extra : ';
$rsshead = $navtitle = $navigation = '';
//字面理解 groupid應該和權限有關係
$_DSESSION['groupid'] = $groupid = empty($ipbanned) ? (empty($groupid) ? 7 : intval($groupid)) : 6;
//如果文件中沒有就到數據庫裏查找
if(!@include DISCUZ_ROOT.'./forumdata/cache/usergroup_'.$groupid.'.php') {
$grouptype = $db->result_first("SELECT type FROM {$tablepre}usergroups WHERE groupid='$groupid'");
if(!empty($grouptype)) {
$cachelost .= ' usergroup_'.$groupid;
} else {
$grouptype = 'member';
}
}
/*
$link_login = 'logging.php?action=login';
$link_logout = 'logging.php?action=logout&formhash='.FORMHASH;
$link_register = $regname;
*/
//有登陸的用戶
if($discuz_uid && $_DSESSION) {
//用處不明。$groupexpiry在members中。過期用戶?
if(!empty($groupexpiry) && $groupexpiry $grouptype,
'creditshigher' => $groupcreditshigher,
'creditslower' => $groupcreditslower
), $_DSESSION)) {
//又一個extract。我的神
@extract($_DSESSION);
$cachelost .= (@include DISCUZ_ROOT.'./forumdata/cache/usergroup_'.intval($groupid).'.php') ? ' : ' usergroup_'.$groupid;
}
}
//值不是1、2、3的管理員帳戶,將各個參數置零
if(!in_array($adminid, array(1, 2, 3))) {
$alloweditpost = $alloweditpoll = $allowstickthread = $allowmodpost = $allowdelpost = $allowmassprune
= $allowrefund = $allowcensorword = $allowviewip = $allowbanip = $allowedituser = $allowmoduser
= $allowbanuser = $allowpostannounce = $allowviewlog = $disablepostctrl = 0;
} elseif(isset($radminid) && $adminid != $radminid && $adminid != $groupid) {
//管理員引入管理員緩存頁面
$cachelost .= (@include DISCUZ_ROOT.'./forumdata/cache/admingroup_'.intval($adminid).'.php') ? ' : ' admingroup_'.$groupid;
}
//應該是頁數文章ID、主題ID、類別ID。後面兩個不知道是啥
$page = isset($page) ? max(1, intval($page)) : 1;
$tid = isset($tid) && is_numeric($tid) ? $tid : 0;
$fid = isset($fid) && is_numeric($fid) ? $fid : 0;
$typeid = isset($typeid) ? intval($typeid) : 0;
$tpp = intval(empty($_DSESSION['tpp']) ? $topicperpage : $_DSESSION['tpp']);
$ppp = intval(empty($_DSESSION['ppp']) ? $postperpage : $_DSESSION['ppp']);
$modthreadkey = isset($modthreadkey) && $modthreadkey == modthreadkey($tid) ? $modthreadkey : '';
$auditstatuson = $modthreadkey ? true : false;
//主題和文章都不爲空
if(!empty($tid) || !empty($fid)) {
//組合sql語句。字面理解可能也是權限相關
if(empty($tid)) {
$forum = $db->fetch_first("SELECT f.fid, f.*, ff.* $accessadd1 $modadd1, f.fid AS fid
FROM {$tablepre}forums f
LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid $accessadd2 $modadd2
WHERE f.fid='$fid'");
} else {
//這個應該是具體的文章了。
$forum = $db->fetch_first("SELECT t.tid, t.closed,".(defined('SQL_ADD_THREAD') ? SQL_ADD_THREAD : ')." f.*, ff.* $accessadd1 $modadd1, f.fid AS fid
FROM {$tablepre}threads t
INNER JOIN {$tablepre}forums f ON f.fid=t.fid
LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid $accessadd2 $modadd2
WHERE t.tid='$tid'".($auditstatuson ? ' : " AND t.displayorder>='0'")." LIMIT 1");
$tid = $forum['tid'];
}
//這個也不明白
if($forum) {
$fid = $forum['fid'];
$forum['ismoderator'] = !empty($forum['ismoderator']) || $adminid == 1 || $adminid == 2 ? 1 : 0;
foreach(array('postcredits', 'replycredits', 'threadtypes', 'threadsorts', 'digestcredits', 'postattachcredits', 'getattachcredits', 'modrecommend') as $key) {
$forum[$key] = !empty($forum[$key]) ? unserialize($forum[$key]) : array();
}
} else {
$fid = 0;
}
}
//敢不敢不要寫那麼長!
//不知道什麼意思。
$styleid = intval(!empty($_GET['styleid']) ? $_GET['styleid'] :
(!empty($_POST['styleid']) ? $_POST['styleid'] :
(!empty($_DSESSION['styleid']) ? $_DSESSION['styleid'] :
$_DCACHE['settings']['styleid'])));
//我的神……又賦了個值
//既然上一句都那麼長了,這句幹嘛不和上句連一起?
$styleid = intval(isset($styles[$styleid]) ? $styleid : $_DCACHE['settings']['styleid']);
//繼續緩存頁面。界面主題?
if(@!include DISCUZ_ROOT.'./forumdata/cache/style_'.intval(!empty($forum['styleid']) ? $forum['styleid'] : $styleid).'.php') {
$cachelost .= (@include DISCUZ_ROOT.'./forumdata/cache/style_'.($styleid = $_DCACHE['settings']['styleid']).'.php') ? ' : ' style_'.$styleid;
}
//沒有緩存,則更新緩存。
if($cachelost) {
require_once DISCUZ_ROOT.'./include/cache.func.php';
updatecache();
exit('Cache List: '.$cachelost.'<br />Caches successfully created, please refresh.');
}
//非手機頁面
if(CURSCRIPT != 'wap') {
//不曉得那裏的變量。字面理解應該是判斷是否設置緩存
if($nocacheheaders) {
@dheader("Expires: 0");
@dheader("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE);
@dheader("Pragma: no-cache");
}
// $headercharset在config.inc.php上。
//強制論壇頁面使用默認字符集,可避免部分服務器空間頁面出現亂碼,一般無需開啓。 0=關閉 1= 開啓
if($headercharset) {
@dheader('Content-Type: text/html; charset='.$charset);
}
if(empty($_DCOOKIE['sid']) || $sid != $_DCOOKIE['sid']) {
dsetcookie('sid', $sid, 604800, 1, true);
}
}
//作者對三元運算符情有獨鍾。
$_DCOOKIE['loginuser'] = !empty($_DCOOKIE['loginuser']) ? substr(htmlspecialchars($_DCOOKIE['loginuser']), 0, 15) : '';
//該參數也是在cache_setting.php上。
//定時清空數據。
if($cronnextrun && $cronnextrun $include) {
if(!$include['adminid'] || ($include['adminid'] && $adminid > 0 && $include['adminid'] >= $adminid)) {
if(@in_array($pluginid, $pluginlangs)) {
@include_once DISCUZ_ROOT.'./forumdata/cache/cache_scriptlang.php';
}
@include_once DISCUZ_ROOT.'./plugins/'.$include['script'].'.inc.php';
}
}
}
//字面理解應該是是否有權限進入。
//不知道這個變量那裏來的。
if(isset($allowvisit) && $allowvisit == 0 && !(CURSCRIPT == 'member' && ($action == 'groupexpiry' || $action == 'activate'))) {
showmessage('user_banned', NULL, 'HALTED');
} elseif(!(in_array(CURSCRIPT, array('logging', 'wap', 'seccode', 'ajax')) || $adminid == 1)) {
//這個變量也是未知/
if($bbclosed) {
clearcookies();
$closedreason = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='closedreason'");
showmessage($closedreason ? $closedreason : 'board_closed', NULL, 'NOPERM');
}
//函數在global.func.php中。不明真相
periodscheck('visitbanperiods');
}
//這句也看不懂。
if((!empty($fromuid) || !empty($fromuser)) && ($creditspolicy['promotion_visit'] || $creditspolicy['promotion_register'])) {
require_once DISCUZ_ROOT.'/include/promotion.inc.php';
}
//uchome數組也找不到出處。
if($uchome['addfeed']) {
$customaddfeed = $customaddfeed == '-1' ? 0 : ($customaddfeed == 0 ? $uchome['addfeed'] : intval($customaddfeed));
} else {
$customaddfeed = 0;
}
//又是三句神句。
$rssauth = $rssstatus && $discuz_uid ? rawurlencode(authcode("$discuz_uidt".($fid ? $fid : ')."t".substr(md5($discuz_pw.$discuz_secques), 0, 8), 'ENCODE', md5($_DCACHE['settings']['authkey']))) : '0';
$transferstatus = $transferstatus && $allowtransfer;
$feedpostnum = $feedpostnum && $uchomeurl ? intval($feedpostnum) : 0;
$pluginhooks = array();//這個是做啥的?
//腳本關聯?應該是和加載插件有關。
if(isset($hookscript[CURSCRIPT]['module'])) {
hookscript(CURSCRIPT);
}
//這段估計也和一些二次開發相關。該頁面和函數暫時沒看懂。
if($discuz_uid && $newbietaskupdate && $lastactivity
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.