最近因为业务需要,大概看了下UCH,想想也无事,就有了这。。。
打算做个UCH代码分析系列吧。
个人水平有限,如分析有不妥或者错漏,欢迎指正。
PHP代码
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @define('IN_UCHOME', TRUE);
-
-
-
- define('D_BUG', '0');
-
-
-
- D_BUG?error_reporting(7):error_reporting(0);
-
-
-
- set_magic_quotes_runtime(0);
-
-
-
- $_SGLOBAL = $_SCONFIG = $_SBLOCK = $_TPL = $_SCOOKIE = $_SN = $space = array();
-
-
- define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
-
-
- include_once(S_ROOT.'./ver.php');
-
-
-
- if(!@include_once(S_ROOT.'./config.php')) {
- header("Location: install/index.php");
- exit();
- }
-
-
-
- include_once(S_ROOT.'./source/function_common.php');
-
-
- $mtime = explode(' ', microtime());
-
-
-
-
- $_SGLOBAL['timestamp'] = $mtime[1];
- $_SGLOBAL['supe_starttime'] = $_SGLOBAL['timestamp'] + $mtime[0];
-
-
- $magic_quote = get_magic_quotes_gpc();
-
-
-
-
- if(emptyempty($magic_quote)) {
- $_GET = saddslashes($_GET);
- $_POST = saddslashes($_POST);
- }
-
-
- if(emptyempty($_SC['siteurl'])) $_SC['siteurl'] = getsiteurl();
-
-
- dbconnect();
-
-
-
-
-
-
- if(!@include_once(S_ROOT.'./data/data_config.php')) {
- include_once(S_ROOT.'./source/function_cache.php');
- config_cache();
- include_once(S_ROOT.'./data/data_config.php');
- }
- foreach (array('app', 'userapp', 'ad', 'magic') as $value) {
- @include_once(S_ROOT.'./data/data_'.$value.'.php');
- }
-
-
-
-
-
-
-
- $prelength = strlen($_SC['cookiepre']);
- foreach($_COOKIE as $key => $val) {
- if(substr($key, 0, $prelength) == $_SC['cookiepre']) {
- $_SCOOKIE[(substr($key, $prelength))] = emptyempty($magic_quote) ? saddslashes($val) : $val;
- }
- }
-
-
-
-
-
-
- if ($_SC['gzipcompress'] && function_exists('ob_gzhandler')) {
- ob_start('ob_gzhandler');
- } else {
- ob_start();
- }
-
-
- $_SGLOBAL['supe_uid'] = 0;
- $_SGLOBAL['supe_username'] = '';
- $_SGLOBAL['inajax'] = emptyempty($_GET['inajax'])?0:intval($_GET['inajax']);
- $_SGLOBAL['mobile'] = emptyempty($_GET['mobile'])?'':trim($_GET['mobile']);
- $_SGLOBAL['ajaxmenuid'] = emptyempty($_GET['ajaxmenuid'])?'':$_GET['ajaxmenuid'];
- $_SGLOBAL['refer'] = emptyempty($_SERVER['HTTP_REFERER'])?'':$_SERVER['HTTP_REFERER'];
- if(emptyempty($_GET['m_timestamp']) || $_SGLOBAL['mobile'] != md5($_GET['m_timestamp']."\t".$_SCONFIG['sitekey'])) $_SGLOBAL['mobile'] = '';
-
-
- if(emptyempty($_SCONFIG['login_action'])) $_SCONFIG['login_action'] = md5('login'.md5($_SCONFIG['sitekey']));
- if(emptyempty($_SCONFIG['register_action'])) $_SCONFIG['register_action'] = md5('register'.md5($_SCONFIG['sitekey']));
-
-
- if(emptyempty($_SCONFIG['template'])) {
- $_SCONFIG['template'] = 'default';
- }
-
-
-
- if($_SCOOKIE['mytemplate']) {
- $_SCOOKIE['mytemplate'] = str_replace('.','',trim($_SCOOKIE['mytemplate']));
- if(file_exists(S_ROOT.'./template/'.$_SCOOKIE['mytemplate'].'/style.css')) {
- $_SCONFIG['template'] = $_SCOOKIE['mytemplate'];
- } else {
- ssetcookie('mytemplate', '', 365000);
- }
- }
-
-
- if(!isset($_SERVER['REQUEST_URI'])) {
- $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
- if(isset($_SERVER['QUERY_STRING'])) $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
- }
-
-
-
-
- if($_SERVER['REQUEST_URI']) {
- $temp = urldecode($_SERVER['REQUEST_URI']);
- if(strexists($temp, '<') || strexists($temp, '"')) {
- $_GET = shtmlspecialchars($_GET);
- }
- }
-
-
- checkauth();
-
-
-
- $_SGLOBAL['uhash'] = md5($_SGLOBAL['supe_uid']."\t".substr($_SGLOBAL['timestamp'], 0, 6));
-
-
- getuserapp();
-
-
- $_SCONFIG['uc_status'] = 0;
- $_SGLOBAL['appmenus'] = $_SGLOBAL['appmenu'] = array();
-
-
-
- if($_SGLOBAL['app']) {
- foreach ($_SGLOBAL['app'] as $appid => $value) {
- if(UC_APPID != $appid) {
- $_SCONFIG['uc_status'] = 1;
- }
- if($value['open']) {
- if(emptyempty($_SGLOBAL['appmenu'])) {
- $_SGLOBAL['appmenu'] = $value;
- } else {
- $_SGLOBAL['appmenus'][] = $value;
- }
- }
- }
- }
-
- ?>