From a9fa59b030ff6baa62b04579d6dc716085934b42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=83=A1?= <3203164629@qq.com> Date: Mon, 29 Jan 2024 12:50:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3v1.87.2=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9=E5=9C=A8Dzzoffice=E7=AC=94?= =?UTF-8?q?=E8=AE=B0=E4=B8=AD=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/language/zh-cn/lang.php | 2 +- admin/system/database.php | 9 +-- core/class/class_core.php | 5 +- core/class/dzz/dzz_app.php | 37 +++++---- core/core_version.php | 4 +- core/function/function_core.php | 130 ++++++++++++++------------------ 6 files changed, 84 insertions(+), 103 deletions(-) diff --git a/admin/language/zh-cn/lang.php b/admin/language/zh-cn/lang.php index ceecf02..701cc8c 100644 --- a/admin/language/zh-cn/lang.php +++ b/admin/language/zh-cn/lang.php @@ -390,7 +390,7 @@ $lang = array 'database_export_zip_succeed' => '数据成功备份并压缩至服务器 {filename} 中', 'tools_updatecache_tips' => '
  • 当站点进行了数据恢复、升级或者工作出现异常的时候,您可以使用本功能重新生成缓存。更新缓存的时候,可能让服务器负载升高,请尽量避开会员访问的高峰时间
  • 数据缓存:更新站点的全部数据缓存
  • -
  • 模板缓存:更新论坛模板、风格等缓存文件,当您修改了模板或者风格,但是没有立即生效的时候使用
  • +
  • 模板缓存:更新Dzz模板、风格等缓存文件,当您修改了模板或者风格,但是没有立即生效的时候使用
  • ', // admin/stysem 'updatecache'=>'更新缓存', diff --git a/admin/system/database.php b/admin/system/database.php index 9241c14..e38a917 100644 --- a/admin/system/database.php +++ b/admin/system/database.php @@ -85,8 +85,7 @@ if ($operation == 'export') { } $volume = intval($_GET['volume']) + 1; - $idstring = '# Identify: ' . base64_encode($_G['timestamp']."," . $_G['setting']['version'] . "," .$_GET['type']."," .$_GET['method']."," .$volume."," .$tablepre."," .$dbcharset) . "\n"; - + $idstring = '# Identify: ' . base64_encode("$_G[timestamp]," . $_G['setting']['version'] . ",{$_GET['type']},{$_GET['method']},{$volume},{$tablepre},{$dbcharset}") . "\n"; $dumpcharset = $_GET['sqlcharset'] ? $_GET['sqlcharset'] : str_replace('-', '', $_G['charset']); $setnames = ($_GET['sqlcharset'] && $db -> version() > '4.1' && (!$_GET['sqlcompat'] || $_GET['sqlcompat'] == 'MYSQL41')) ? "SET NAMES '$dumpcharset';\n\n" : ''; if ($db -> version() > '4.1') { @@ -499,7 +498,7 @@ function sqldumptablestruct($table) { } $tablestatus = DB::fetch_first("SHOW TABLE STATUS LIKE '$table'"); - $tabledump .= ($tablestatus['Auto_increment'] ? " AUTO_INCREMENT=$tablestatus['Auto_increment']" : ''). ";\n\n"; + $tabledump .= ($tablestatus['Auto_increment'] ? " AUTO_INCREMENT=$tablestatus[Auto_increment]" : ''). ";\n\n"; if ($_GET['sqlcompat'] == 'MYSQL40' && $db -> version() >= '4.1' && $db -> version() < '5.1') { if ($tablestatus['Auto_increment'] <> '') { $temppos = strpos($tabledump, ','); @@ -540,7 +539,7 @@ function sqldumptable($table, $startfrom = 0, $currsize = 0) { if ($_GET['extendins'] == '0') { while ($currsize + strlen($tabledump) + 500 < $_GET['sizelimit'] * 1000 && $numrows == $offset) { if ($firstfield['Extra'] == 'auto_increment') { - $selectsql = "SELECT * FROM $table WHERE$firstfield['Field']> $startfrom ORDER BY$firstfield['Field']LIMIT $offset"; + $selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $startfrom ORDER BY $firstfield[Field] LIMIT $offset"; } else { $selectsql = "SELECT * FROM $table LIMIT $startfrom, $offset"; } @@ -571,7 +570,7 @@ function sqldumptable($table, $startfrom = 0, $currsize = 0) { } else { while ($currsize + strlen($tabledump) + 500 < $_GET['sizelimit'] * 1000 && $numrows == $offset) { if ($firstfield['Extra'] == 'auto_increment') { - $selectsql = "SELECT * FROM $table WHERE$firstfield['Field']> $startfrom LIMIT $offset"; + $selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $startfrom LIMIT $offset"; } else { $selectsql = "SELECT * FROM $table LIMIT $startfrom, $offset"; } diff --git a/core/class/class_core.php b/core/class/class_core.php index 591ee22..a119369 100644 --- a/core/class/class_core.php +++ b/core/class/class_core.php @@ -149,10 +149,7 @@ class core } public static function handleException($exception) { - global $_config; - if($_config['debug']>0){ - dzz_error::exception_error($exception); - } + dzz_error::exception_error($exception); } diff --git a/core/class/dzz/dzz_app.php b/core/class/dzz/dzz_app.php index f7a93d8..e36d7b2 100644 --- a/core/class/dzz/dzz_app.php +++ b/core/class/dzz/dzz_app.php @@ -610,32 +610,31 @@ class dzz_app extends dzz_base{ } } if($appidxu=C::t('app_market')->fetch_by_identifier(CURMODULE)){ - if($this->var['member']['adminid'] || $_GET['do']=='savefile'){ - }elseif($appidxu['available']==0){ - showmessage(lang('该应用已关闭,请联系管理员。')); + if($this->var['member']['adminid'] || $_GET['do']=='savefile'){ + }elseif($appidxu['available']==0){ + showmessage(lang('该应用已关闭,请联系管理员。')); }elseif($this->var['member']['uid']){ - $appuid= C::t('user_field')->fetch($this->var['member']['uid']); - $appuidz=explode(',',$appuid['applist']); - if (in_array($appidxu['appid'],$appuidz)){ - }elseif($config=dzz_userconfig_init()){ - if($config['applist']){ - $applist=explode(',',$config['applist']); - }else{ - $applist=array(); - } - $appuid= C::t('user_field')->fetch($_G['uid']); + $appuid= C::t('user_field')->fetch($this->var['member']['uid']); $appuidz=explode(',',$appuid['applist']); if (in_array($appidxu['appid'],$appuidz)){ - }else{ - showmessage(lang('您无权限使用该应用,请联系管理员。')); + }elseif($config=dzz_userconfig_init()){ + if($config['applist']){ + $applist=explode(',',$config['applist']); + }else{ + $applist=array(); + } + $appuid= C::t('user_field')->fetch($_G['uid']); + $appuidz=explode(',',$appuid['applist']); + if (in_array($appidxu['appid'],$appuidz)){ + }else{ + showmessage(lang('您无权限使用该应用,请联系管理员。')); + } } - - } }elseif($appidxu['group']==0 || $appidxu['group']==-1){ }else{ Hook::listen('check_login'); - } - } + } + } if(isset($this->var['setting']['nocacheheaders']) && $this->var['setting']['nocacheheaders']) { @header("Expires: -1"); @header("Cache-Control: no-store, private, post-check=0, pre-check=0, max-age=0", FALSE); diff --git a/core/core_version.php b/core/core_version.php index e70c7a6..0b0a7a1 100644 --- a/core/core_version.php +++ b/core/core_version.php @@ -14,7 +14,7 @@ if(!defined('CORE_VERSION')) { define('CORE_VERSION', '2.02'); define('CORE_RELEASE', '20180909'); define('CORE_FIXBUG' , '20000000'); - define('CORE_XHVERSION', '1.87.1'); - define('CORE_XHRELEASE', '20240127'); + define('CORE_XHVERSION', '1.87.2'); + define('CORE_XHRELEASE', '20240129'); define('CORE_XHFIXBUG' , '20240110'); } \ No newline at end of file diff --git a/core/function/function_core.php b/core/function/function_core.php index 4a15525..4a96945 100644 --- a/core/function/function_core.php +++ b/core/function/function_core.php @@ -1774,93 +1774,79 @@ $idtype2type = array( 'qid' => 'attach', 'uid' => 'user' ); -function get_os() +function get_os($agent = '') { - $agent = $_SERVER['HTTP_USER_AGENT']; - $os = false; - - if (eregi('win', $agent) && eregi('nt 5.1', $agent)) { - $os = 'Windows XP'; - } else if (eregi('win', $agent) && eregi('nt 5.0', $agent)) { - $os = 'Windows 2000'; - } else if (eregi('win', $agent) && eregi('nt 5.2', $agent)) { - $os = 'Windows 2003'; - } else if (eregi('win', $agent) && eregi('nt 6.0', $agent)) { - $os = 'Windows 2008'; - } else if (eregi('win', $agent) && eregi('6.0', $agent)) { - $os = 'Windows vista'; - } else if (eregi('win', $agent) && eregi('6.1', $agent)) { + if (!$agent) $agent = $_SERVER['HTTP_USER_AGENT']; + $os = 'unknow'; + if (stristr($agent, 'iPad')) { + $os = "iPad"; + } elseif (preg_match('/Android (([0-9_.]{1,3})+)/i', $agent, $version)) { + $os = "Android " . $version[1]; + } elseif (preg_match('/iPhone OS (([0-9_.]{1,3})+)/i', $agent, $version)) { + $os = "iPhone " . $version[1]; + } elseif (preg_match('/win/i', $agent) && strpos($agent, '95')) { + $os = 'Windows 95'; + } elseif (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')) { + $os = 'Windows ME'; + } elseif (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)) { + $os = 'Windows 98'; + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)) { + $os = 'Windows Vista'; + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)) { $os = 'Windows 7'; - } else if (eregi('win', $agent) && eregi('6.2', $agent)) { + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)) { $os = 'Windows 8'; - } else if (eregi('win', $agent) && eregi('nt', $agent)) { + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)) { + $os = 'Windows 10'; + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)) { + $os = 'Windows XP'; + } elseif (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)) { + $os = 'Windows 2000'; + } elseif (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)) { $os = 'Windows NT'; - } else if (eregi('win', $agent) && ereg('32', $agent)) { + } elseif (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)) { $os = 'Windows 32'; - } else if (eregi('linux', $agent) && ereg('Android', $agent)) { - $os = 'Android'; - } else if (eregi('linux', $agent)) { + } elseif (preg_match('/linux/i', $agent)) { $os = 'Linux'; - } else if (eregi('unix', $agent)) { + } elseif (preg_match('/unix/i', $agent)) { $os = 'Unix'; - } else if (eregi('sun', $agent) && eregi('os', $agent)) { + } elseif (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)) { $os = 'SunOS'; - } else if (eregi('ibm', $agent) && eregi('os', $agent)) { + } elseif (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)) { $os = 'IBM OS/2'; - } else if (eregi('Mac', $agent) && eregi('Macintosh', $agent)) { + } elseif (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)) { $os = 'Macintosh'; - } else if (eregi('PowerPC', $agent)) { + } elseif (preg_match('/PowerPC/i', $agent)) { $os = 'PowerPC'; - } /* else if (eregi('AIX', $agent)) - { - $os = 'AIX'; - } - else if (eregi('HPUX', $agent)) - { - $os = 'HPUX'; - } - else if (eregi('NetBSD', $agent)) - { - $os = 'NetBSD'; - } - else if (eregi('BSD', $agent)) - { - $os = 'BSD'; - } - else if (ereg('OSF1', $agent)) - { - $os = 'OSF1'; - } - else if (ereg('IRIX', $agent)) - { - $os = 'IRIX'; - } - else if (eregi('FreeBSD', $agent)) - { - $os = 'FreeBSD'; - } - else if (eregi('teleport', $agent)) - { - $os = 'teleport'; - } - else if (eregi('flashget', $agent)) - { - $os = 'flashget'; - } - else if (eregi('webzip', $agent)) - { - $os = 'webzip'; - } - else if (eregi('offline', $agent)) - { - $os = 'offline'; - }*/ - else { - $os = 'Unknown'; + } elseif (preg_match('/AIX/i', $agent)) { + $os = 'AIX'; + } elseif (preg_match('/HPUX/i', $agent)) { + $os = 'HPUX'; + } elseif (preg_match('/NetBSD/i', $agent)) { + $os = 'NetBSD'; + } elseif (preg_match('/BSD/i', $agent)) { + $os = 'BSD'; + } elseif (preg_match('/OSF1/i', $agent)) { + $os = 'OSF1'; + } elseif (preg_match('/IRIX/i', $agent)) { + $os = 'IRIX'; + } elseif (preg_match('/FreeBSD/i', $agent)) { + $os = 'FreeBSD'; + } elseif (preg_match('/teleport/i', $agent)) { + $os = 'teleport'; + } elseif (preg_match('/flashget/i', $agent)) { + $os = 'flashget'; + } elseif (preg_match('/webzip/i', $agent)) { + $os = 'webzip'; + } elseif (preg_match('/offline/i', $agent)) { + $os = 'offline'; + } else { + $os = 'unkonow'; } return $os; } + function array_sort($arr, $keys, $type = 'asc') { //二维数组排序; $keysvalue = $new_array = array();