/**
* Copyright (c) 2003-08 PHPWind.net. All rights reserved.
* 注释 由 wbsifan 添加. 注释风格统一为 //,
* [内的注释] 表示目前的进度中不能完全确定,需要进一步分析才能决定.
* wbsifan 的网站 请看wbsifan 的签名.
*/
// 安装文件存在,跳转到安装程序
file_exists
(
'install.php'
) &&
ObHeader
(
'install.php'
);
// 配置错误信息回报的等级。
//error_reporting(E_ERROR | E_PARSE);
// 关闭 对来自资料库或文字档自动加上反斜线(/)。
set_magic_quotes_runtime
(
0
);
// 本程序中日期时间函数的默认时区
function_exists
(
'date_default_timezone_set'
) &&
date_default_timezone_set
(
'Etc/GMT+0'
);
// $defined_vars 为 所有已定义变量所组成的数组
$defined_vars
=
get_defined_vars
();
// 初使化一些系统变量
foreach (
$defined_vars
as
$_key
=>
$_value
) {
// 如果是 $_POST $_GET 等变量, 清空其值, 并且注销掉这个变量
if (!
in_array
(
$_key
,array(
'GLOBALS'
,
'_POST'
,
'_GET'
,
'_COOKIE'
,
'_SERVER'
,
'_FILES'
,
'wind_in'
))) {
// 相当于 $_GLOBALS,$_POST等.
${
$_key
} =
''
;
unset(${
$_key
});
}
}
// 纪录脚本开始运行时间 1229306755.7031
$t_array
=
explode
(
' '
,
microtime
());
$P_S_T
=
$t_array
[
0
] +
$t_array
[
1
];
// 定义 程序 绝对根目录
define
(
'R_P'
,
getdirname
(
__FILE__
));
define
(
'D_P'
,
R_P
);
define
(
'P_W'
,
'global'
);
// 如果当前操作没有定义,定义为other
!
defined
(
'SCR'
) &&
define
(
'SCR'
,
'other'
);
// 获得当前时间
$timestamp
=
time
();
// 当前正在执行脚本的文件名
!
$_SERVER
[
'PHP_SELF'
] &&
$_SERVER
[
'PHP_SELF'
] =
$_SERVER
[
'SCRIPT_NAME'
];
require_once(
R_P
.
'require/common.php'
);
require_once(
R_P
.
'require/defend.php'
);
// 定义PW中一些变量如缓存文件名的前缀
$db_mode
=
''
;
// 获得伪静态模式时真实的脚本名 通常 $db_dir='.php?'
$dirstrpos
=
strpos
(
$_SERVER
[
'PHP_SELF'
],
$db_dir
);
if (
$dirstrpos
!==
false
) {
$tmp
=
substr
(
$_SERVER
[
'PHP_SELF'
],
0
,
$dirstrpos
);
$_SERVER
[
'PHP_SELF'
] =
"$tmp.php"
;
} else {
$tmp
=
$_SERVER
[
'PHP_SELF'
];
}
// 获得完整的URL请求
$REQUEST_URI
=
$_SERVER
[
'PHP_SELF'
].
'?'
.
$_SERVER
[
'QUERY_STRING'
];
// 如果存在,获得最后记问的COOKIE纪录
if (
GetCookie
(
'lastvisit'
)) {
list(
$c_oltime
,
$lastvisit
,
$lastpath
) =
explode
(
"/t"
,
GetCookie
(
'lastvisit'
));
(
$onbbstime
=
$timestamp
-
$lastvisit
)<
$db_onlinetime
&&
$c_oltime
+=
$onbbstime
;
} else {
// 记录最后记问的COOKIE
$lastvisit
=
$lastpath
=
''
;
$c_oltime
=
$onbbstime
=
0
;
Cookie
(
'lastvisit'
,
$c_oltime
.
"/t"
.
$timestamp
.
"/t"
.
$REQUEST_URI
);
}
// AJAX模式,加载ajaxfunc文件
if (
defined
(
'AJAX'
)) {
require_once(
R_P
.
'require/ajaxfunc.php'
);
}
// 修正: 多长时间内算在线
$db_cvtime
!=
0
&&
$timestamp
+=
$db_cvtime
*
60
;
// 调试模式时 显示所有错误类型 包括 不是错误的 通知
$db_debug
&&
error_reporting
(
E_ALL
^
E_NOTICE
);
// 定义PW版本
$wind_version
=
'7.0 RC'
;
// 读取文件时 每次读取的字节数
$db_olsize
=
96
;
// 定义完整的URL地址
$R_url
=
$db_bbsurl
=
Char_cv
(
"http://$_SERVER[HTTP_HOST]"
.
substr
(
$tmp
,
0
,
strrpos
(
$tmp
,
'/'
)));
echo
$R_url
;
// 定义无图版的URL地址
defined
(
'SIMPLE'
) &&
SIMPLE
&&
$db_bbsurl
=
substr
(
$db_bbsurl
,
0
,-
7
);
InitGP
(array(
'fid'
,
'tid'
),
'GP'
,
2
);
$db
=
$credit
=
null
;
// [处理用户组]
!
is_array
(
$manager
) &&
$manager
= array();
$newmanager
= array();
foreach (
$manager
as
$key
=>
$value
) {
if (!empty(
$value
) && !
is_array
(
$value
)) {
$newmanager
[
$key
] =
$value
;
}
}
$manager
=
$newmanager
;
// 配置数据库类型
if (
$database
==
'mysqli'
&&
Pwloaddl
(
'mysqli'
) ===
false
) {
$database
=
'mysql'
;
}
// 开启缓冲区 此函数 根据配置决定是否开启压缩
ObStart
();
//noizy
// 2008.12.15
// 处理本地图片链接 images
if (
$db_http
!=
'N'
) {
$imgpath
=
$db_http
;
if (
D_P
!=
R_P
) {
$R_url
=
substr
(
$db_http
,-
1
)==
'/'
?
substr
(
$db_http
,
0
,-
1
) :
$db_http
;
$R_url
=
substr
(
$R_url
,
0
,
strrpos
(
$R_url
,
'/'
));
}
} else {
// 用户自定义的图片链接
$imgpath
=
$db_picpath
;
}
// 远程附件,则获取远程附件链接 否则为 attachment
$attachpath
=
$db_attachurl
!=
'N'
?
$db_attachurl
:
$db_attachname
;
// 图片保存目录
$imgdir
=
R_P
.
$db_picpath
;
// 附件保存目录
$attachdir
=
R_P
.
$db_attachname
;
$pw_posts
=
'pw_posts'
;
$pw_tmsgs
=
'pw_tmsgs'
;
$runfc
=
'N'
;
// 获取当前的用户信息
list(
$winduid
,
$windpwd
,
$safecv
) =
explode
(
"/t"
,
addslashes
(
StrCode
(
GetCookie
(
'winduser'
),
'DECODE'
)));
// 验证码
$loginhash
=
GetVerify
(
$onlineip
,
$db_pptkey
);
// 如果开启通行证 并且 PW做为客户端
if (
$db_pptifopen
&&
$db_ppttype
==
'client'
) {
// 处理登陆地址 如果地址中 没出现过 ?
if (
strpos
(
$db_pptloginurl
,
'?'
) ===
false
) {
$db_pptloginurl
.=
'?'
;
// 处理登陆地址 如果地址最后一位 不是 &
} elseif (
substr
(
$db_pptloginurl
,-
1
) !=
'&'
) {
$db_pptloginurl
.=
'&'
;
}
// 处理注册地址 如果地址中 没出现过 ?
if (
strpos
(
$db_pptregurl
,
'?'
) ===
false
) {
$db_pptregurl
.=
'?'
;
// 处理注册地址 如果地址最后一位 不是 &
} elseif (
substr
(
$db_pptregurl
,-
1
) !=
'&'
) {
$db_pptregurl
.=
'&'
;
}
// 编码 论坛 URL 并做为数参传递给 SERVER端
$urlencode
=
rawurlencode
(
$db_bbsurl
);
$loginurl
=
"$db_pptserverurl/{$db_pptloginurl}forward=$urlencode"
;
$loginouturl
=
"$db_pptserverurl/$db_pptloginouturl&forward=$urlencode&verify=$loginhash"
;
$regurl
=
"$db_pptserverurl/{$db_pptregurl}forward=$urlencode"
;
} else {
// 没有开启通行证 或者 PW做为SERVER端
$loginurl
=
'login.php'
;
$loginouturl
=
"login.php?action=quit&verify=$loginhash"
;
$regurl
=
$db_registerfile
;
}
// 以上代码 取得 $loginurl $loginouturl $regurl
// 在线人数
$ol_offset
=
GetCookie
(
'ol_offset'
);
// 是否更换过风格, 更换了则设用 最后一次更换的风格
$skinco
=
GetCookie
(
'skinco'
);
// 刷新预防时间, 如果 在规定时间内连续 刷新 则提示
if (
$db_refreshtime
&&
$REQUEST_URI
==
$lastpath
&&
$onbbstime
<
$db_refreshtime
) {
!
GetCookie
(
'winduser'
) &&
$groupid
=
'guest'
;
$skin
=
$skinco
?
$skinco
:
$db_defaultstyle
;
Showmsg
(
'refresh_limit'
);
}
// 论坛关闭中...
if (!
$db_bbsifopen
&& !
defined
(
'CK'
)) {
require_once(
R_P
.
'require/bbsclose.php'
);
}
$H_url
=&
$db_wwwurl
;
// 同论坛URL
$B_url
=&
$db_bbsurl
;
// 当前 小时 Array ( [hours] => 14 )
$t
= array(
'hours'
=>
gmdate
(
'G'
,
$timestamp
+
$db_timedf
*
3600
));
$tdtime
=
PwStrtoTime
(
get_date
(
$timestamp
,
'Y-m-d'
));
$montime
=
PwStrtoTime
(
get_date
(
$timestamp
,
'Y-m'
).
'-1'
);