application_top.php
来自「全新且完善的强大网上商店系统」· PHP 代码 · 共 367 行
PHP
367 行
<?php
/*
[SOOBIC!] includes/application_top.php
Version: 1.5
Author: Soolan (soolan@qq.com)
Copyright: soolan (www.soobic.com)
Last Modified: 2005/4/16 20:00
*/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$mtime = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];
define('IN_SOOLAN', TRUE);
define('IN_SOOBIC', TRUE);
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'] ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME'];
$SCRIPT_FILENAME = str_replace('\\\\', '/', ($HTTP_SERVER_VARS['PATH_TRANSLATED'] ? $HTTP_SERVER_VARS['PATH_TRANSLATED'] : $HTTP_SERVER_VARS['SCRIPT_FILENAME']));
$soobic = '';
require ('./includes/configure.php');
require $soobic.'./includes/db_'.DB_DATABASE_TYPE.'.php';
require $soobic.'./includes/global.php';
$timestamp = time();
$register_globals = @ini_get('register_globals');
$magic_quotes_gpc = get_magic_quotes_gpc();
if(!$register_globals || !$magic_quotes_gpc) {
@extract(daddslashes($HTTP_POST_VARS), EXTR_SKIP);
@extract(daddslashes($HTTP_GET_VARS), EXTR_SKIP);
}
$tables = array('sessions','usergroups','configuration','configuration_group','styles','stylevars','templates','categories','categories_description','tax_class','tax_rates','zones_to_geo_zones','manufacturers',
'products','products_description','products_to_categories','reviews','manufacturers','manufacturers_info','reviews','reviews_description','specials','orders','orders_total','orders_status','orders_products','orders_products_attributes','orders_status_history',
'countries','zones','geo_zones','customers','address_book','currencies','languages','whos_online','bonus','featured','products_options','products_attributes','products_notifications','products_options_values','products_options_values_to_products_options','products_to_categories','orders_products_download',
'customers_basket','customers_basket_attributes','products_attributes_download','newsletters', 'orders_products_download','news');
foreach($tables as $tablename) {
${'table_'.$tablename} = DB_DATABASE_PRE.$tablename;
}
unset($tablename);
if (strlen(DB_SERVER) < 1) {
if (is_dir('install')) {
header('Location: install/index.php');
}
}
$db = new dbstuff;
$db->connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT);
$db->select_db(DB_DATABASE);
$currscript = basename($PHP_SELF);
$currscript = substr($currscript, 0, strpos($currscript, '.php'));
$cachelost = (@include $soobic.'./oscdata/cache/cache_settings.php') ? '' : 'settings';
if(in_array($currscript, array('index', 'product_info', 'shopping_cart', 'checkout_confirmation', 'checkout_process', 'pm'))) {
$cachelost .= (@include $soobic.'./oscdata/cache/cache_'.$currscript.'.php') ? '' : ' '.$currscript;
}
if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) {
if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) {
if (PHP_VERSION >= '4.0.4') {
ob_start('ob_gzhandler');
} else {
include($soobic.'./includes/gzip_compression.php');
ob_start();
ob_implicit_flush();
}
} else {
ini_set('zlib.output_compression_level', GZIP_LEVEL);
}
}else{
ob_start();
}
$request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';
if ($request_type == 'NONSSL') {
define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
} else {
define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
}
$base_href=(($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER).DIR_WS_CATALOG;
if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
if (strlen(getenv('PATH_INFO')) > 1) {
$GET_array = array();
$PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);
$vars = explode('/', substr(getenv('PATH_INFO'), 1));
for ($i=0, $n=sizeof($vars); $i<$n; $i++) {
if (strpos($vars[$i], '[]')) {
$GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1];
} else {
$HTTP_GET_VARS[$vars[$i]] = $vars[$i+1];
}
$i++;
}
if (sizeof($GET_array) > 0) {
while (list($key, $value) = each($GET_array)) {
$HTTP_GET_VARS[$key] = $value;
}
}
}
}
require($soobic.'./includes/functions/general.php');
require($soobic.'./includes/functions/html_output.php');
$cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN);
$cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH);
require($soobic.'./includes/classes/shopping_cart.php');
require($soobic.'./includes/classes/navigation_history.php');
require($soobic.'./includes/functions/compatibility.php');
if (!function_exists('session_start')) {
define('PHP_SESSION_NAME', 'osCsid');
define('PHP_SESSION_PATH', $cookie_path);
define('PHP_SESSION_DOMAIN', $cookie_domain);
define('PHP_SESSION_SAVE_PATH', DIR_FS_CATALOG.SESSION_WRITE_DIRECTORY);
require($soobic.'./includes/functions/sessions.php');
}
require($soobic.'./includes/functions/sessions.php');
tep_session_name('osCsid');
tep_session_save_path(DIR_FS_CATALOG.SESSION_WRITE_DIRECTORY);
if (function_exists('session_set_cookie_params')) {
session_set_cookie_params(0, $cookie_path, $cookie_domain);
} elseif (function_exists('ini_set')) {
ini_set('session.cookie_lifetime', '0');
ini_set('session.cookie_path', $cookie_path);
ini_set('session.cookie_domain', $cookie_domain);
}
if (isset($HTTP_POST_VARS[tep_session_name()])) {
tep_session_id(${tep_session_name()});
} elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) {
tep_session_id($HTTP_GET_VARS[tep_session_name()]);
}
$session_started = false;
if (SESSION_FORCE_COOKIE_USE == 'True'){
tep_setcookie('cookie_test', 'please_accept_for_session', $timestamp+60*60*24*30, $cookie_path, $cookie_domain);
echo $HTTP_COOKIE_VARS['cookie_test'];
if (isset($HTTP_COOKIE_VARS['cookie_test'])) {
tep_session_start();
$session_started = true;
}
} elseif (SESSION_BLOCK_SPIDERS == 'True') {
$user_agent = strtolower(getenv('HTTP_USER_AGENT'));
$spider_flag = false;
if (tep_not_null($user_agent)) {
$spiders = file('includes/spiders.txt');
for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {
if (tep_not_null($spiders[$i])) {
if (is_integer(strpos($user_agent, trim($spiders[$i])))) {
$spider_flag = true;
break;
}
}
}
}
if ($spider_flag == false) {
tep_session_start();
$session_started = true;
}
} else {
tep_session_start();
$session_started = true;
}
$SID = (defined('SID') ? SID : '');
if(empty($customer_email) || !tep_session_is_registered('customer_email')) {
$groupid = 'no';
} else {
$customer_email = addslashes($customer_email);
$groupid = (int)$groupid;
}
if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) {
$ssl_session_id = getenv('SSL_SESSION_ID');
if (!tep_session_is_registered('SSL_SESSION_ID')) {
$SESSION_SSL_ID = $ssl_session_id;
tep_session_register('SESSION_SSL_ID');
}
if ($SESSION_SSL_ID != $ssl_session_id) {
tep_session_destroy();
tep_redirect(tep_href_link('ssl_check.php'));
}
}
if (SESSION_CHECK_USER_AGENT == 'True') {
$http_user_agent = getenv('HTTP_USER_AGENT');
if (!tep_session_is_registered('SESSION_USER_AGENT')) {
$SESSION_USER_AGENT = $http_user_agent;
tep_session_register('SESSION_USER_AGENT');
}
if ($SESSION_USER_AGENT != $http_user_agent) {
tep_session_destroy();
tep_redirect(tep_href_link('login.php'));
}
}
if (SESSION_CHECK_IP_ADDRESS == 'True') {
$ip_address = tep_get_ip_address();
if (!tep_session_is_registered('SESSION_IP_ADDRESS')) {
$SESSION_IP_ADDRESS = $ip_address;
tep_session_register('SESSION_IP_ADDRESS');
}
if ($SESSION_IP_ADDRESS != $ip_address) {
tep_session_destroy();
tep_redirect(tep_href_link('login.php'));
}
}
if (tep_session_is_registered('cart') && is_object($cart)) {
if (PHP_VERSION < 4) {
$broken_cart = $cart;
$cart = new shoppingCart;
$cart->unserialize($broken_cart);
}
} else {
tep_session_register('cart');
$cart = new shoppingCart;
}
require($soobic.'./includes/classes/currencies.php');
$currencies = new currencies();
if (!tep_session_is_registered('language') || !tep_session_is_registered('languages_id') || $languages_id=='' || isset($HTTP_GET_VARS['language'])) {
if (!tep_session_is_registered('language') || !tep_session_is_registered('languages_id') || $languages_id==''|| $language=='') {
tep_session_register('language');
tep_session_register('languages_id');
}
include($soobic.'./includes/classes/language.php');
$lng = new language();
if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {
$lng->set_language($HTTP_GET_VARS['language']);
} else {
$lng->get_browser_language();
}
$language = $lng->language['directory'];
$languages_id = $lng->language['id'];
}
if(@include($soobic.'./languages/'. $language . '.php')) {
}else{
include($soobic.'./languages/chinese.php');
$lng->set_language('en');
$language = $lng->language['directory'];
$languages_id = $lng->language['id'];
}
$cachelost .= (@include $soobic.'./oscdata/cache/style_'.STORE_STYLE.'.php') ? '' : ' style_'.STORE_STYLE;
if($groupid!='no'){
$cachelost .= (@include $soobic.'./oscdata/cache/usergroup_'.$groupid.'.php') ? '' : ' usergroup_'.$groupid;
}
$cachelost .= (@include $soobic.'./oscdata/cache/cache_categories.php') ? '' : 'categories';
if($cachelost) {
require $soobic.'./includes/cache.php';
updatecache();
soobic_exit(CACHES_SUCCESSFULLY_CREATE);
}
//if (!isset($lng) || (isset($lng) && !is_object($lng))) {
// include($soolan.'./includes/classes/language.php');
// $lng = new language;
//}
/*
$languages_string = '';
reset($lng->catalog_languages);
while (list($key, $value) = each($lng->catalog_languages)) {
$languages_string.='<a href="'.tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type).'">'.$value['name'].'</a> ';
}
*/
if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) {
if (!tep_session_is_registered('currency')) tep_session_register('currency');
if (isset($HTTP_GET_VARS['currency'])) {
if (!$currency = tep_currency_exists($HTTP_GET_VARS['currency'])) $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
} else {
$currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
}
}
if (tep_session_is_registered('navigation')) {
if (PHP_VERSION < 4) {
$broken_navigation = $navigation;
$navigation = new navigationHistory;
$navigation->unserialize($broken_navigation);
}
} else {
tep_session_register('navigation');
$navigation = new navigationHistory;
}
$navigation->add_current_page();
if (isset($HTTP_GET_VARS['action'])) {
include($soobic."./includes/shopping_action.php");
}
require($soobic.'./includes/category.php');
require($soobic.'./includes/functions/validations.php');
if (isset($HTTP_GET_VARS['cPath'])) {
$cPath = $HTTP_GET_VARS['cPath'];
} elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) {
$cPath = tep_get_product_path($HTTP_GET_VARS['products_id']);
} else {
$cPath = '';
}
if (tep_not_null($cPath)) {
$cPath_array = tep_parse_category_path($cPath);
$cPath = implode('_', $cPath_array);
$current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
} else {
$current_category_id = 0;
}
require($soobic.'./includes/classes/breadcrumb.php');
$breadcrumb = new breadcrumb;
$breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
$breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link('index.php'));
require $soobic.'./languages/'.$language.'/faq_title.php';
if (isset($cPath_array)) {
for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
$categories_query = $db->query("select categories_name from $table_categories_description where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
if ($db->num_rows($categories_query) > 0) {
$categories = $db->fetch_array($categories_query);
$breadcrumb->add($categories['categories_name'], tep_href_link('index.php', 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
} else {
break;
}
}
} elseif (isset($HTTP_GET_VARS['manufacturers_id'])) {
$manufacturers_query = $db->query("select manufacturers_name from $table_manufacturers where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
if ($db->num_rows($manufacturers_query)) {
$manufacturers = $db->fetch_array($manufacturers_query);
$breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link('index.php', 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']));
}
}
require $soobic.'./includes/classes/message_stack.php';
$messageStack = new messageStack;
define('WARN_INSTALL_EXISTENCE', 'true');
define('WARN_CONFIG_WRITEABLE', 'true');
define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', 'true');
define('WARN_SESSION_AUTO_START', 'true');
define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', 'true');
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?