国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

344 řádky
11KB

  1. <?php
  2. /**
  3. * @version $Id: common.inc.php 3 17:44 2010-11-23 tianya $
  4. * @package DedeBIZ.Libraries
  5. * @copyright Copyright (c) 2020, DedeBIZ.COM
  6. * @license https://www.dedebiz.com/license
  7. * @link https://www.dedebiz.com
  8. */
  9. // 生产环境使用production,如果采用dev模式,会有一些php的报错信息提示,便于开发调试
  10. define('DEDE_ENVIRONMENT', 'production');
  11. if (DEDE_ENVIRONMENT == 'production') {
  12. error_reporting(E_ALL || ~E_NOTICE);
  13. } else {
  14. error_reporting(E_ALL);
  15. }
  16. define('DEBUG_LEVEL', FALSE); // 如果设置为TRUE则会打印执行SQL的时间和标签加载时间方便调试
  17. define('DEDEINC', str_replace("\\", '/', dirname(__FILE__)));
  18. define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC, 0, -8)));
  19. define('DEDEDATA', DEDEROOT . '/data');
  20. define('DEDEMEMBER', DEDEROOT . '/member');
  21. define('DEDETEMPLATE', DEDEROOT . '/templets');
  22. // ------------------------------------------------------------------------
  23. define('DEDEBIZURL', "https://www.dedebiz.com"); // Dede商业支持
  24. define('DEDEVER', 6); // 当前系统大版本
  25. define('DEDEPUB', '-----BEGIN PUBLIC KEY-----
  26. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvupO2Lixns34bBqwTzK0
  27. 9wA9sfGBdgc03zh1sUacieJBikx08e7xmkJbMF81jb/YfNGW/+iJ3qHULdc9Dtd3
  28. +FsnHG+tUDnzjkPnVVmnrjucQqfHRRVKKAgXOWxtuRKUVF3NDjiJtDAf5Y2BMAhw
  29. oqzeepye5I4mWyO4A8/V2ougO+xDK426MIf1dq+W59NVZj8k+zeZrbPh7+fPFw4u
  30. PwAMpkTJJ9nwNOO6saH2eMGaQ3oxZIQ+SmminDB8miI/+hwIn2hNmaHFuur0OGlB
  31. NQabUzX9JoYtXqPcpZRT7ymHrppU0KFdUSEJiW0utTWJo0HrDOBIT5qWlM0MP9p/
  32. PwIDAQAB
  33. -----END PUBLIC KEY-----'); // DedeBIZ系统公钥
  34. define('DEDECDNURL', 'https://cdn.dedebiz.com'); // 默认静态资源地址
  35. if (version_compare(PHP_VERSION, '5.3.0', '<') && function_exists("get_magic_quotes_gpc")) {
  36. set_magic_quotes_runtime(0);
  37. }
  38. if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  39. if (!function_exists('session_register')) {
  40. function session_register()
  41. {
  42. $args = func_get_args();
  43. foreach ($args as $key) {
  44. $_SESSION[$key] = $GLOBALS[$key];
  45. }
  46. }
  47. function session_is_registered($key)
  48. {
  49. return isset($_SESSION[$key]);
  50. }
  51. function session_unregister($key)
  52. {
  53. unset($_SESSION[$key]);
  54. }
  55. }
  56. }
  57. //是否启用mb_substr替换cn_substr来提高效率
  58. $cfg_is_mb = $cfg_is_iconv = FALSE;
  59. if (function_exists('mb_substr')) $cfg_is_mb = TRUE;
  60. if (function_exists('iconv_substr')) $cfg_is_iconv = TRUE;
  61. function _RunMagicQuotes(&$svar)
  62. {
  63. if (function_exists("get_magic_quotes_gpc") && !@get_magic_quotes_gpc()) {
  64. if (is_array($svar)) {
  65. foreach ($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
  66. } else {
  67. if (strlen($svar) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#', $svar)) {
  68. exit('Request var not allow!');
  69. }
  70. $svar = addslashes($svar);
  71. }
  72. }
  73. return $svar;
  74. }
  75. if (!defined('DEDEREQUEST')) {
  76. //检查和注册外部提交的变量 (2011.8.10 修改登录时相关过滤)
  77. function CheckRequest(&$val)
  78. {
  79. if (is_array($val)) {
  80. foreach ($val as $_k => $_v) {
  81. if ($_k == 'nvarname') continue;
  82. CheckRequest($_k);
  83. CheckRequest($val[$_k]);
  84. }
  85. } else {
  86. if (strlen($val) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#', $val)) {
  87. exit('Request var not allow!');
  88. }
  89. }
  90. }
  91. //var_dump($_REQUEST);exit;
  92. CheckRequest($_REQUEST);
  93. CheckRequest($_COOKIE);
  94. foreach (array('_GET', '_POST', '_COOKIE') as $_request) {
  95. foreach ($$_request as $_k => $_v) {
  96. if ($_k == 'nvarname') ${$_k} = $_v;
  97. else ${$_k} = _RunMagicQuotes($_v);
  98. }
  99. }
  100. }
  101. //系统相关变量检测
  102. if (!isset($needFilter)) {
  103. $needFilter = false;
  104. }
  105. $registerGlobals = @ini_get("register_globals");
  106. $isUrlOpen = @ini_get("allow_url_fopen");
  107. $isSafeMode = @ini_get("safe_mode");
  108. if (preg_match('/windows/i', @getenv('OS'))) {
  109. $isSafeMode = false;
  110. }
  111. //系统配置参数
  112. require_once(DEDEDATA . "/config.cache.inc.php");
  113. //Session保存路径
  114. $sessSaveHandler = @ini_get("session.save_handler");
  115. if ($sessSaveHandler !== "files") {
  116. @ini_set("session.save_handler", "files");
  117. }
  118. $enkey = substr(md5(substr($cfg_cookie_encode, 0, 5)), 0, 10);
  119. $sessSavePath = DEDEDATA . "/sessions_{$enkey}";
  120. if (!is_dir($sessSavePath)) mkdir($sessSavePath);
  121. if (is_writeable($sessSavePath) && is_readable($sessSavePath)) {
  122. session_save_path($sessSavePath);
  123. }
  124. //转换上传的文件相关的变量及安全处理、并引用前台通用的上传函数
  125. if ($_FILES) {
  126. require_once(DEDEINC . '/uploadsafe.inc.php');
  127. }
  128. //数据库配置文件
  129. require_once(DEDEDATA . '/common.inc.php');
  130. if (!isset($cfg_dbtype)) {
  131. $cfg_dbtype = 'mysql';
  132. }
  133. //载入系统验证安全配置
  134. if (file_exists(DEDEDATA . '/safe/inc_safe_config.php')) {
  135. require_once(DEDEDATA . '/safe/inc_safe_config.php');
  136. if (!empty($safe_faqs)) $safefaqs = unserialize($safe_faqs);
  137. }
  138. //Session跨域设置
  139. if (!empty($cfg_domain_cookie)) {
  140. @session_set_cookie_params(0, '/', $cfg_domain_cookie);
  141. }
  142. //php5.1版本以上时区设置
  143. //由于这个函数对于是php5.1以下版本并无意义,因此实际上的时间调用,应该用MyDate函数调用
  144. if (PHP_VERSION > '5.1') {
  145. $time51 = $cfg_cli_time * -1;
  146. @date_default_timezone_set('Etc/GMT' . $time51);
  147. }
  148. $cfg_isUrlOpen = @ini_get("allow_url_fopen");
  149. //用户访问的网站host
  150. if (PHP_SAPI === 'cli') {
  151. $cfg_clihost = 'https://www.dedebiz.com';
  152. } else {
  153. $cfg_clihost = 'http://' . $_SERVER['HTTP_HOST'];
  154. }
  155. //站点根目录
  156. $cfg_basedir = preg_replace('#' . $cfg_cmspath . '\/include$#i', '', DEDEINC);
  157. if ($cfg_multi_site == 'Y') {
  158. $cfg_mainsite = $cfg_basehost;
  159. } else {
  160. $cfg_mainsite = '';
  161. }
  162. //模板的存放目录
  163. $cfg_templets_dir = $cfg_cmspath . '/templets';
  164. $cfg_templeturl = $cfg_mainsite . $cfg_templets_dir;
  165. $cfg_templets_skin = empty($cfg_df_style) ? $cfg_mainsite . $cfg_templets_dir . "/default" : $cfg_mainsite . $cfg_templets_dir . "/$cfg_df_style";
  166. //cms安装目录的网址
  167. $cfg_cmsurl = $cfg_mainsite . $cfg_cmspath;
  168. //插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
  169. $cfg_plus_dir = $cfg_cmspath . '/plus';
  170. $cfg_phpurl = $cfg_mainsite . $cfg_plus_dir;
  171. $cfg_static_dir = $cfg_cmspath . '/static';
  172. $cfg_staticurl = $cfg_mainsite . $cfg_static_dir;
  173. $cfg_mobile_dir = $cfg_cmspath . '/m';
  174. $cfg_mobileurl = $cfg_mainsite . $cfg_mobile_dir;
  175. $cfg_data_dir = $cfg_cmspath . '/data';
  176. $cfg_dataurl = $cfg_mainsite . $cfg_data_dir;
  177. //会员目录
  178. $cfg_member_dir = $cfg_cmspath . '/member';
  179. $cfg_memberurl = $cfg_mainsite . $cfg_member_dir;
  180. //专题列表的存放路径
  181. $cfg_special = $cfg_cmspath . '/special';
  182. $cfg_specialurl = $cfg_mainsite . $cfg_special;
  183. //附件目录
  184. $cfg_medias_dir = $cfg_cmspath . $cfg_medias_dir;
  185. $cfg_mediasurl = $cfg_mainsite . $cfg_medias_dir;
  186. //上传的普通图片的路径,建议按默认
  187. $cfg_image_dir = $cfg_medias_dir . '/allimg';
  188. //上传的缩略图
  189. $ddcfg_image_dir = $cfg_medias_dir . '/litimg';
  190. //用户投稿图片存放目录
  191. $cfg_user_dir = $cfg_medias_dir . '/userup';
  192. //上传的软件目录
  193. $cfg_soft_dir = $cfg_medias_dir . '/soft';
  194. //上传的多媒体文件目录
  195. $cfg_other_medias = $cfg_medias_dir . '/media';
  196. //软件摘要信息,****请不要删除本项**** 否则系统无法正确接收系统漏洞或升级信息
  197. $cfg_version = 'V6';
  198. $cfg_version_detail = '6.0.1'; // 详细版本号
  199. $cfg_soft_lang = 'utf-8';
  200. $cfg_soft_public = 'base';
  201. $cfg_softname = '织梦内容管理系统';
  202. $cfg_soft_enname = 'DedeCMSV6';
  203. $cfg_soft_devteam = 'DedeBIZ';
  204. //文档的默认命名规则
  205. $art_shortname = $cfg_df_ext = '.html';
  206. $cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}' . $cfg_df_ext;
  207. //新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行
  208. if (isset($cfg_ftp_mkdir) && $cfg_ftp_mkdir == 'Y') {
  209. $cfg_dir_purview = '0755';
  210. } else {
  211. $cfg_dir_purview = 0755;
  212. }
  213. //会员是否使用精简模式(已禁用)
  214. $cfg_mb_lit = 'N';
  215. //特殊全局变量
  216. $_sys_globals['curfile'] = '';
  217. $_sys_globals['typeid'] = 0;
  218. $_sys_globals['typename'] = '';
  219. $_sys_globals['aid'] = 0;
  220. if (empty($cfg_addon_savetype)) {
  221. $cfg_addon_savetype = 'Ymd';
  222. }
  223. if ($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_usermail)) {
  224. $cfg_adminemail = $cfg_smtp_usermail;
  225. }
  226. // DedeBIZ商业化组件
  227. require_once(DEDEINC . '/dedebiz.class.php');
  228. //对全局分页传递参数进行过滤
  229. if (isset($GLOBALS['PageNo'])) {
  230. $GLOBALS['PageNo'] = intval($GLOBALS['PageNo']);
  231. }
  232. if (isset($GLOBALS['TotalResult'])) {
  233. $GLOBALS['TotalResult'] = intval($GLOBALS['TotalResult']);
  234. }
  235. // ------------------------------------------------------------------------
  236. // 设定缓存配置信息
  237. if ($cfg_memcache_enable == 'Y') {
  238. $cache_helper_config = array();
  239. $cache_helper_config['memcache']['is_mc_enable'] = $GLOBALS["cfg_memcache_enable"];
  240. $cache_helper_config['memcache']['mc'] = array(
  241. 'default' => $GLOBALS["cfg_memcache_mc_defa"],
  242. 'other' => $GLOBALS["cfg_memcache_mc_oth"]
  243. );
  244. $cache_helper_config['memcache']['mc_cache_time'] = $GLOBALS["cfg_puccache_time"];
  245. }
  246. if (!isset($cfg_NotPrintHead)) {
  247. if (PHP_SAPI != 'cli') {
  248. header("Content-Type: text/html; charset={$cfg_soft_lang}");
  249. }
  250. }
  251. //自动加载类库处理
  252. if (version_compare(PHP_VERSION, '7.2.0', '>=')) {
  253. require_once(DEDEINC . '/autoload7.inc.php');
  254. } else {
  255. require_once(DEDEINC . '/autoload.inc.php');
  256. }
  257. $cfg_biz_helpUrl = DEDEBIZURL . "/help";
  258. $cfg_biz_gitUrl = DEDEBIZURL . "/git";
  259. $cfg_biz_dedebizUrl = DEDEBIZURL;
  260. //引入数据库类
  261. if ($GLOBALS['cfg_dbtype'] == 'mysql' || $GLOBALS['cfg_dbtype'] == 'mysqli') {
  262. require_once(DEDEINC . '/dedesqli.class.php');
  263. } else {
  264. require_once(DEDEINC . '/dedesqlite.class.php');
  265. }
  266. //全局常用函数
  267. require_once(DEDEINC . '/common.func.php');
  268. //载入小助手配置,并对其进行默认初始化
  269. $cfg_helper_autoload = array(
  270. 'charset', /* 编码小助手 */
  271. 'channelunit',/* 模型单元小助手 */
  272. 'string', /* 字符串小助手 */
  273. 'time', /* 日期小助手 */
  274. 'file', /* 文件小助手 */
  275. 'util', /* 单元小助手 */
  276. 'validate', /* 数据验证小助手 */
  277. 'filter', /* 过滤器小助手 */
  278. 'cookie', /* cookies小助手 */
  279. 'debug', /* 调试小助手 */
  280. 'archive', /* 文档小助手 */
  281. 'upload', /* 上传小助手 */
  282. 'extend', /* 扩展小助手 */
  283. );
  284. // 初始化小助手
  285. helper($cfg_helper_autoload);