You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

299 lines
8.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
if (!defined('IN_ASC'))
{
die('Hacking attempt');
}
error_reporting(E_ALL);
if (__FILE__ == '')
{
die('Fatal error code: 0');
}
/* 取得當前shop所在的根目錄 */
define('ROOT_PATH', str_replace('includes/init.php', '', str_replace('\\', '/', __FILE__)));
if (!file_exists(ROOT_PATH . 'data/install.lock') && !file_exists(ROOT_PATH . 'includes/install.lock')
&& !defined('NO_CHECK_INSTALL'))
{
header("Location: ./install/index.php\n");
exit;
}
/* 初始化設置 */
@ini_set('memory_limit', '64M');
@ini_set('session.cache_expire', 180);
@ini_set('session.use_trans_sid', 0);
@ini_set('session.use_cookies', 1);
@ini_set('session.auto_start', 0);
@ini_set('display_errors', 0);
if (DIRECTORY_SEPARATOR == '\\')
{
@ini_set('include_path', '.;' . ROOT_PATH);
}
else
{
@ini_set('include_path', '.:' . ROOT_PATH);
}
require(ROOT_PATH . 'data/config.php');
if (defined('DEBUG_MODE') == false)
{
define('DEBUG_MODE', 0);
}
if (PHP_VERSION >= '5.1' && !empty($timezone))
{
date_default_timezone_set($timezone);
}
$php_self = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
if ('/' == substr($php_self, -1))
{
$php_self .= 'index.php';
}
define('PHP_SELF', $php_self);
require(ROOT_PATH . 'includes/inc_constant.php');
require(ROOT_PATH . 'includes/cls_shop.php');
require(ROOT_PATH . 'includes/cls_error.php');
require(ROOT_PATH . 'includes/lib_time.php');
require(ROOT_PATH . 'includes/lib_base.php');
require(ROOT_PATH . 'includes/lib_common.php');
require(ROOT_PATH . 'includes/lib_main.php');
require(ROOT_PATH . 'includes/lib_insert.php');
require(ROOT_PATH . 'includes/lib_goods.php');
require(ROOT_PATH . 'includes/lib_article.php');
require(ROOT_PATH . 'includes/lib_bee.php');
/* 對用户傳入的變量進行轉義操作。*/
if (true)
{
if (!empty($_GET))
{
$_GET = addslashes_deep($_GET);
}
if (!empty($_POST))
{
$_POST = addslashes_deep($_POST);
}
$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
/* 創建 shop 對象 */
$ecs = new ECS($db_name, $prefix);
define('DATA_DIR', $ecs->data_dir());
define('IMAGE_DIR', $ecs->image_dir());
/* 初始化數據庫類 */
require(ROOT_PATH . 'includes/cls_mysql.php');
$db = new cls_mysql($db_host, $db_user, $db_pass, $db_name);
$db->set_disable_cache_tables(array($ecs->table('sessions'), $ecs->table('sessions_data'), $ecs->table('cart')));
$db_host = $db_user = $db_pass = $db_name = NULL;
/* 創建錯誤處理對象 */
$err = new ecs_error('message.dwt');
/* 載入系統參數 */
$_CFG = load_config();
/* 載入語言文件 */
require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');
if ($_CFG['shop_closed'] == 1)
{
/* 商店關閉了,輸出關閉的消息 */
header('Content-type: text/html; charset='.EC_CHARSET);
die('<div style="margin: 150px; text-align: center; font-size: 14px"><p>' . $_LANG['shop_closed'] . '</p><p>' . $_CFG['close_comment'] . '</p></div>');
}
/* 手機訪問網站頁面時自動跳轉到對應的手機頁面 */
// pc_to_mobile();
if (is_spider())
{
/* 如果是蜘蛛的訪問,那麼默認為訪客方式,並且不記錄到日誌中 */
if (!defined('INIT_NO_USERS'))
{
define('INIT_NO_USERS', true);
/* 整合UC後如果是蜘蛛訪問初始化UC需要的常量 */
if($_CFG['integrate_code'] == 'ucenter')
{
$user = init_users();
}
}
$_SESSION = array();
$_SESSION['user_id'] = 0;
$_SESSION['user_name'] = '';
$_SESSION['email'] = '';
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 1.00;
}
if (!defined('INIT_NO_USERS'))
{
/* 初始化session */
include(ROOT_PATH . 'includes/cls_session.php');
$sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data'));
define('SESS_ID', $sess->get_session_id());
}
if(isset($_SERVER['PHP_SELF']))
{
$_SERVER['PHP_SELF']=htmlspecialchars($_SERVER['PHP_SELF']);
}
if (!defined('INIT_NO_SMARTY'))
{
header('Cache-control: private');
header('Content-type: text/html; charset='.EC_CHARSET);
/* 創建 Smarty 對象。*/
require(ROOT_PATH . 'includes/cls_template.php');
$smarty = new cls_template;
$smarty->cache_lifetime = $_CFG['cache_time'];
$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];
$smarty->cache_dir = ROOT_PATH . 'temp/caches';
$smarty->compile_dir = ROOT_PATH . 'temp/compiled';
if ((DEBUG_MODE & 2) == 2)
{
$smarty->direct_output = true;
$smarty->force_compile = true;
}
else
{
$smarty->direct_output = false;
$smarty->force_compile = false;
}
$smarty->assign('lang', $_LANG);
$smarty->assign('ecs_charset', EC_CHARSET);
if (!empty($_CFG['stylename']))
{
$smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style_' . $_CFG['stylename'] . '.css');
}
else
{
$smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style.css');
}
}
if (!defined('INIT_NO_USERS'))
{
/* 客戶信息 */
$user = init_users();
if (!isset($_SESSION['user_id']))
{
/* 獲取投放站點的名稱 */
$site_name = isset($_GET['from']) ? htmlspecialchars($_GET['from']) : addslashes($_LANG['self_site']);
$from_ad = !empty($_GET['ad_id']) ? intval($_GET['ad_id']) : 0;
$_SESSION['from_ad'] = $from_ad; // 用户點擊的廣告ID
$_SESSION['referer'] = stripslashes($site_name); // 用户來源
unset($site_name);
if (!defined('INGORE_VISIT_STATS'))
{
visit_stats();
}
}
if (empty($_SESSION['user_id']))
{
if ($user->get_cookie())
{
/* 如果客戶已經登錄並且還沒有獲得客戶的帳户餘額、積分以及優惠券 */
if ($_SESSION['user_id'] > 0)
{
update_user_info();
}
}
else
{
$_SESSION['user_id'] = 0;
$_SESSION['user_name'] = '';
$_SESSION['email'] = '';
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 1.00;
if (!isset($_SESSION['login_fail']))
{
$_SESSION['login_fail'] = 0;
}
}
}
/* 設置推薦客戶 */
if (isset($_GET['u']))
{
set_affiliate();
}
/* session 不存在檢查cookie */
if (!empty($_COOKIE['ECS']['user_id']) && !empty($_COOKIE['ECS']['password']))
{
// 找到了cookie, 驗證cookie信息
$sql = 'SELECT user_id, user_name, password ' .
' FROM ' .$ecs->table('users') .
" WHERE user_id = '" . intval($_COOKIE['ECS']['user_id']) . "' AND password = '" .$_COOKIE['ECS']['password']. "'";
$row = $db->GetRow($sql);
if (!$row)
{
// 沒有找到這個記錄
$time = time() - 3600;
setcookie("ECS[user_id]", '', $time, '/');
setcookie("ECS[password]", '', $time, '/');
}
else
{
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['user_name'] = $row['user_name'];
update_user_info();
}
}
if (isset($smarty))
{
$smarty->assign('ecs_session', $_SESSION);
}
}
if ((DEBUG_MODE & 1) == 1)
{
error_reporting(E_ALL);
}
else
{
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED);
}
if ((DEBUG_MODE & 4) == 4)
{
include(ROOT_PATH . 'includes/lib.debug.php');
}
/* 判斷是否支持 Gzip 模式 */
if (!defined('INIT_NO_SMARTY') && gzip_enabled())
{
ob_start('ob_gzhandler');
}
else
{
ob_start();
}
?>