标签:style http os io 使用 ar for 文件 div
最土团购系统是国内比较常见的团购程序,在国内团购系统份额中所占比例还是比较大的。下面分析一下它的全局核心文件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 |
} |
标签:style http os io 使用 ar for 文件 div
原文地址:http://www.cnblogs.com/laoyangman/p/3960628.html