国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

273 行
9.7KB

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