首页 > 新闻动态 >  

新闻动态
NEWS

ecshop init.php文件解析

添加时间:2013-7-22 点击量:

1.  ecshop init.php文件解析
2.  <?php 
3.  
4.  / 
5.  ECSHOP 前台公用文件 
6. 
===========================================================================

7.  版权所有  2005-2008 上海商派收集科技有限公司,并保存所有权力。 
8.  网站地址: [url]http://www.ecshop.com[/url]; 
9.  ---------------------------------------------------------------------------- 
10.  这不是一个软件!您只能在不消于贸易目标的前提下对法度代码进行批改和 
11.  应用;不容许对法度代码以任何情势任何目标的再公布。 
12. 
===========================================================================

13.  ¥Author: likai ¥ 
14.  ¥Id: init.php 16132 2009-05-31 08:59:15Z likai ¥ 
15.  / 
16.  
17.  // 禁止跨域引入文件. 
18.  if (!defined(IN_ECS)){ 
19.  die(Hacking attempt); //  黑客妄图 
20.  } 
21.  
22.  // 无用代码,后期功能复盖 
23.  error_reporting(E_ALL); 
24.  
25.  // 防止菜鸟将此变量从GET POST 或者新常量定义. 
26.  if (__FILE__ == ){ 
27.  die(Fatal error code: 0); 
28.  } 
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(session.use_trans_sid, 0); 
45.  @ini_set(session.use_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_.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(<div style=margin: 150px; text-align: center; font-size: 14px><p> . ¥_LANG[shop_closed] .
</p><p> . ¥_CFG[close_comment] . </p></div>); 
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[]) ? ¥_GET[] : addslashes(¥_LANG[self_site]); 
219.  ¥_ad = !empty(¥_GET[ad_id]) ? intval(¥_GET[ad_id]) : 0; 
220.  
221.  ¥_SESSION[_ad] = ¥_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.  _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.  ?>

文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
分享到: