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>&nbsp;&nbsp;';
}
*/

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 + -
显示快捷键?