文档库

最新最全的文档下载
当前位置:文档库 > ecshop init.php文件分析

ecshop init.php文件分析

ecshop init.php文件分析

29.

30./* 取得当前ecshop所在的根目录比discuz的复杂*/

31.define('ROOT_PATH', str_replace('includes/init.php', '', str_replace('\', '/', __FILE__)));

32.

33.// 判断data目录中的install文件不存在&& include中的安装锁文件不存在并且没有定义

NO_CHECK_INSTALL常量, 就跳转到安装页.

34.if (!file_exists(ROOT_PATH . 'data/install.lock') && !file_exists(ROOT_PATH . 'includes/install.lock')

35.&& !defined('NO_CHECK_INSTALL'))

36.{

37.header("Location: ./install/index.phpn");

38.exit;

39.}

40.

41./* 初始化设置*/

42.@ini_set('memory_limit', '64M');

43.@ini_set('session.cache_expire', 180);

44.@ini_set('http://www.wendangku.net/doc/e319d04769eae009581bec13.htmle_trans_sid', 0);

45.@ini_set('http://www.wendangku.net/doc/e319d04769eae009581bec13.htmle_cookies', 1);

46.@ini_set('session.auto_start', 0);

47.@ini_set('display_errors', 1); // 开启报错.

48.

49.//设置通用的引入目录. wind 是 .; 新的目录linux是 .: 就是以什么为分隔.

50.if (DIRECTORY_SEPARATOR == '\'){

51.@ini_set('include_path', '.;' . ROOT_PATH);

52.}

53.else

54.{

55.@ini_set('include_path', '.:' . ROOT_PATH);

56.}

57.// 引入配置文件.简单的配置.

58.require(ROOT_PATH . 'data/config.php');

59.

60.// 养成良好的习惯, 凡是常量定义,都判断一下是否已经定义过.

61.if (defined('DEBUG_MODE') == false){

62.define('DEBUG_MODE', 0); // 定义为0

63.}

64.

65.//版本判断, 如果版本低于5.1 并表$timezone不为空. $timezone来自config.php文件

66.if (PHP_VERSION >= '5.1' && !empty($timezone))

67.{

68.date_default_timezone_set($timezone); // 设置通用时区.

69.}

70.

71.//获得当前文件,不包括GET;

72.$php_self = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] :

$_SERVER['SCRIPT_NAME'];

73.

74.// 假如用户访问的是目录, 就自动添加index.php默认页.

75.if ('/' == substr($php_self, -1)){

76.$php_self .= 'index.php';

77.}

78.// 然后将当前页路径定义为常量,PHP_SELF; 没有域名导向的.

79.define('PHP_SELF', $php_self);

80.

81.// 开始引入文件了.日后再一个一个分析.

82.require(ROOT_PATH . 'includes/inc_constant.php');

83.require(ROOT_PATH . 'includes/cls_ecshop.php');

84.require(ROOT_PATH . 'includes/cls_error.php');

85.require(ROOT_PATH . 'includes/lib_time.php');

86.require(ROOT_PATH . 'includes/lib_base.php');

87.require(ROOT_PATH . 'includes/lib_common.php');

88.require(ROOT_PATH . 'includes/lib_main.php');

89.require(ROOT_PATH . 'includes/lib_insert.php');

90.require(ROOT_PATH . 'includes/lib_goods.php');

91.require(ROOT_PATH . 'includes/lib_article.php');

92.

93./* 对用户传入的变量进行转义操作。*/ //通用转义方法. 没discuz优化.

94.if (!get_magic_quotes_gpc())

95.{

96.if (!empty($_GET))

97.{

98.$_GET = addslashes_deep($_GET);

99.}

100.if (!empty($_POST))

101.{

102.$_POST = addslashes_deep($_POST);

103.}

104.

105.$_COOKIE = addslashes_deep($_COOKIE);

106.$_REQUEST = addslashes_deep($_REQUEST);

107.}

108.

109./* 创建ECSHOP 对象*/

110.$ecs = new ECS($db_name, $prefix);

111.

112.//定义数据目录及图片目录.

113.define('DATA_DIR', $ecs->data_dir());

114.define('IMAGE_DIR', $ecs->image_dir());

115.

116./* 初始化数据库类*/

117.require(ROOT_PATH . 'includes/cls_mysql.php');

118.$db = new cls_mysql($db_host, $db_user, $db_pass, $db_name);

119.// 设置不充许缓存的表, 比如用户动作,栏目.

120.$db->set_disable_cache_tables(array($ecs->table('sessions'), $ecs->table('sessions_data'), $ecs->table('cart')));

121.$db_host = $db_user = $db_pass = $db_name = NULL;

122.

123./* 创建错误处理对象*/

124.$err = new ecs_error('message.dwt');

125.

126./* 载入系统参数*/

127.$_CFG = load_config();

128.

129./* 载入语言文件*/

130.require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');

131.if ($_CFG['shop_closed'] == 1)

132.{

133./* 商店关闭了,输出关闭的消息*/

134.header('Content-type: text/html; charset='.EC_CHARSET);

135.

136.die('

' . $_LANG['shop_closed'] .

'

' . $_CFG['close_comment'] . '

');

137.}

138.

139.if (is_spider())

140.{

141./* 如果是蜘蛛的访问,那么默认为访客方式,并且不记录到日志中*/

142.if (!defined('INIT_NO_USERS'))

143.{

144.define('INIT_NO_USERS', true);

145./* 整合UC后,如果是蜘蛛访问,初始化UC需要的常量*/

146.if($_CFG['integrate_code'] == 'ucenter')

147.{

148.$user = & init_users();

149.}

150.}

151.$_SESSION = array();

152.$_SESSION['user_id'] = 0;

153.$_SESSION['user_name'] = '';

154.$_SESSION['email'] = '';

155.$_SESSION['user_rank'] = 0;

156.$_SESSION['discount'] = 1.00;

157.}

158.

159.if (!defined('INIT_NO_USERS'))

160.{

161./* 初始化session */

162.include(ROOT_PATH . 'includes/cls_session.php');

163.

164.$sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data')); 165.

166.define('SESS_ID', $sess->get_session_id());

167.}

168.

169.if (!defined('INIT_NO_SMARTY'))

170.{

171.header('Cache-control: private');

172.header('Content-type: text/html; charset='.EC_CHARSET);

173.

174./* 创建Smarty 对象。*/

175.require(ROOT_PATH . 'includes/cls_template.php');

176.$smarty = new cls_template;

177.

178.$smarty->cache_lifetime = $_CFG['cache_time'];

179.$smarty->template_dir = ROOT_PATH . 'themes/' . $_CFG['template'];

180.$smarty->cache_dir = ROOT_PATH . 'temp/caches';

181.$smarty->compile_dir = ROOT_PATH . 'temp/compiled';

182.

183.// 判断一下是否进行更新.

184.if ((DEBUG_MODE & 2) == 2)

185.{

186.$smarty->direct_output = true;

187.$smarty->force_compile = true;

188.}

189.else

190.{

191.$smarty->direct_output = false;

192.$smarty->force_compile = false;

193.}

194.

195.// 熟悉的smarty的注入.

196.$smarty->assign('lang', $_LANG);

197.$smarty->assign('ecs_charset', EC_CHARSET);

198.// 设置CSS文件.

199.if (!empty($_CFG['stylename']))

200.{

201.$smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style_' . $_CFG['stylename'] . '.css'); 202.}

203.else

204.{

205.$smarty->assign('ecs_css_path', 'themes/' . $_CFG['template'] . '/style.css');

206.}

207.

208.}

209.

210.if (!defined('INIT_NO_USERS'))

211.{

212./* 会员信息*/

213.$user =& init_users();

214.

215.if (!isset($_SESSION['user_id']))

216.{

217./* 获取投放站点的名称*/

218.$site_name = isset($_GET['from']) ? $_GET['from'] : addslashes($_LANG['self_site']); 219.$from_ad = !empty($_GET['ad_id']) ? intval($_GET['ad_id']) : 0;

220.

221.$_SESSION['from_ad'] = $from_ad; // 用户点击的广告ID

222.$_SESSION['referer'] = stripslashes($site_name); // 用户来源

223.

224.unset($site_name);

225.

226.if (!defined('INGORE_VISIT_STATS'))

227.{

228.visit_stats();

229.}

230.}

231.

232.if (empty($_SESSION['user_id']))

233.{

234.if ($user->get_cookie())

235.{

236./* 如果会员已经登录并且还没有获得会员的帐户余额、积分以及优惠券*/ 237.if ($_SESSION['user_id'] > 0)

238.{

239.update_user_info();

240.}

241.}

242.else

243.{

244.$_SESSION['user_id'] = 0;

245.$_SESSION['user_name'] = '';

246.$_SESSION['email'] = '';

247.$_SESSION['user_rank'] = 0;

248.$_SESSION['discount'] = 1.00;

249.if (!isset($_SESSION['login_fail']))

250.{

251.$_SESSION['login_fail'] = 0;

252.}

253.}

254.}

255.

256./* 设置推荐会员*/

257.if (isset($_GET['u']))

258.{

259.set_affiliate();

260.}

261.if (isset($smarty))

262.{

263.$smarty->assign('ecs_session', $_SESSION); 264.}

265.}

266.// 修改报错级别.

267.if ((DEBUG_MODE & 1) == 1)

268.{

269.error_reporting(E_ALL);

270.}

271.else

272.{

273.error_reporting(E_ALL ^ E_NOTICE); 274.}

275.if ((DEBUG_MODE & 4) == 4)

276.{

277.include(ROOT_PATH . 'includes/lib.debug.php'); 278.}

279.

280./* 判断是否支持Gzip 模式*/

281.if (!defined('INIT_NO_SMARTY') && gzip_enabled()) 282.{

283.ob_start('ob_gzhandler');

284.}

285.else

286.{

287.ob_start();

288.}

289.

290.?>

文章来源:http://www.wendangku.net/doc/e319d04769eae009581bec13.html/thread-108-1-1.html