最土团购系统全局核心文件app.php介绍

最土团购系统是国内比较常见的团购程序,在国内团购系统份额中所占比例还是比较大的。下面分析一下它的全局核心文件app.php,看看能不能找到一些干货,顺便也籍此开始深入了解下这个开源的团购系统。

注释都写到代码里了,程序用到的自定义函数k7娱乐城也单独地在后面列出,应该是比较好懂的了。

01 <?php
02 require_once(dirname(__FILE__). ‘/include/application.php‘);
03  
04 // 如果magic_quotes_gpc为on则去掉addslash对单引号和双引号及空值反斜杠添加的‘‘
05 /* magic_quota_gpc */
06 $_GET = magic_gpc($_GET);
07 $_POST = magic_gpc($_POST);
08 $_COOKIE = magic_gpc($_COOKIE);
09  
10 // url base64编码为了入库
11 /* process currefer*/
12 $currefer = uencode(strval($_SERVER[‘REQUEST_URI‘]));
13  
14 // 用户session的初始化
15 /* session,cache,configure,webroot register */
16 Session::Init();
17 // 初始化configure目录下的php文件,基本都是第三方支付接口。
18 $INI = ZSystem::GetINI();
19 /* end */
20  
21 /* date_zone */
22 if(function_exists(‘date_default_timezone_set‘)) {
23     date_default_timezone_set($INI[‘system‘][‘timezone‘]);
24 }
25 /* end date_zone */
26  
27  
28 /* biz logic */
29 $currency = $INI[‘system‘][‘currency‘];
30  
31 // 获得用户id
32 $login_user_id = ZLogin::GetLoginId();
33 // 获得用户信息便于之后调用
34 $login_user = Table::Fetch(‘user‘, $login_user_id);
35 // 获得开通的城市
36 $hotcities = option_hotcategory(‘city‘, false, true);
37 // 获得全部设置的城市
38 $allcities = option_category(‘city‘, false, true);
39 // 通过cookie获取城市,cookie没有则通过ip地址获取
40 $city = cookie_city(null);
41  
42 if (!isset($_COOKIE[‘referer‘])) {
43     setcookie(‘referer‘,$_SERVER[‘HTTP_REFERER‘]);
44 }
45  
46 //设置文件不允许访问
47 /* not allow access app.php */
48 if($_SERVER[‘SCRIPT_FILENAME‘]==__FILE__){
49     // 这里似乎只为linux考虑了,windows下的_FILE_为反斜杠没有考虑进去
50     redirect( WEB_ROOT . ‘/index.php‘);
51 }
52 /* end */
53 // js进行ajax请求时发送的参数,以此判断是否是ajax请求。
54 $AJAX = (‘XMLHttpRequest‘ == @$_SERVER[‘HTTP_X_REQUESTED_WITH‘]);
55 if (false==$AJAX) {
56     header(‘Content-Type: text/html; charset=UTF-8‘);
57     run_cron();
58 } else {
59     // 如果是ajax请求,则添加header信息,进行ajax加载前的设置
60     header("Cache-Control: no-store, no-cache, must-revalidate");
61 }
62 ?>

程序中使用到的部分函数解析

magic_gpc():

01 <?php
02     define(‘SYS_MAGICGPC‘, get_magic_quotes_gpc());
03    
04     $_POST = magic_gpc($_POST);
05    
06     function magic_gpc($string) {
07         if(SYS_MAGICGPC) {
08             // 如果magic_quotes_gpc为on则去掉addslash对单引号和双引号及空值反斜杠添加的‘‘
09             if(is_array($string)) {
10                 foreach($string as $key => $val) {
11                     $string[$key] = magic_gpc($val);
12                 }
13             } else {
14                 // 脱去addslash,目的是为了入库前统一操作那样更安全,值得借鉴。
15                 $string = stripslashes($string);
16             }
17         }
18         return $string;
19     }
20 ?>

uencode():

1 function uencode($u) {
2     //放置< >符号单纯base64加密后产生+号这种特殊字符。
3     return base64_encode(urlEncode($u));
4 }

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。