diff --git a/auto_install.json b/auto_install.json index 7757cd0..84dee10 100755 --- a/auto_install.json +++ b/auto_install.json @@ -2,7 +2,7 @@ "php_ext":"opcache", "chmod":[], "success_url":"/index.php", - "php_versions":"56,70,71,72,73,74", + "php_versions":"72,73,74,80,81,82,83", "db_config":"", "admin_username":"", "admin_password":"", diff --git a/class/Api.php b/class/Api.php index a88064b..9eb6d9c 100755 --- a/class/Api.php +++ b/class/Api.php @@ -1675,7 +1675,7 @@ class Api { public function check_weak_password($token){ $this->auth($token); //如果用户名、密码为初始密码,则提示修改 - if ( ( USER == 'xiaoz' ) && ( PASSWORD == 'xiaoz.me' ) ) { + if ( defined('PASSWORD') && USER == 'xiaoz' && PASSWORD == 'xiaoz.me' ) { $this->err_msg(-1,'Weak password!'); } } @@ -2507,8 +2507,18 @@ class Api { //备份目录 $backup_dir = 'data/backup/'; + //目录不存在时先创建,避免 scandir 返回 false 后 count() 在 PHP 8 下抛 TypeError + if ( !is_dir($backup_dir) ) { + if ( !mkdir($backup_dir, 0755, true) ) { + $this->return_json(-2000, '', '备份目录创建失败,请检查目录权限!'); + } + } + //遍历备份列表 $dbs = scandir($backup_dir); + if ( !is_array($dbs) ) { + $dbs = []; + } $newdbs = $dbs; //去除.和.. diff --git a/controller/init.php b/controller/init.php index e9434f9..18afb88 100755 --- a/controller/init.php +++ b/controller/init.php @@ -10,32 +10,32 @@ function check_env() { //获取组件信息 $ext = get_loaded_extensions(); - //检查PHP版本,需要大于7.0小于8.0 - $php_version = floatval(PHP_VERSION); + //检查PHP版本,最低要求7.2,兼容8.x + $php_version = PHP_VERSION; $uri = $_SERVER["REQUEST_URI"]; // var_dump($uri); - if( ( $php_version < 7 ) || ( $php_version > 8 ) ) { - exit("当前PHP版本{$php_version}不满足要求,需要7.0 <= PHP <= 7.4"); + if ( version_compare($php_version, '7.2.0', '<') ) { + exit("当前PHP版本{$php_version}不满足要求,需要PHP >= 7.2"); } //检查是否支持pdo_sqlite - if ( !array_search('pdo_sqlite',$ext) ) { + if ( !in_array('pdo_sqlite', $ext, true) ) { exit("不支持PDO_SQLITE组件,请先开启!"); } - if ( !array_search('openssl', $ext) ) { + if ( !in_array('openssl', $ext, true) ) { exit("不支持OPENSSL组件,请先开启!"); } //检查是否支持zlib - if ( !array_search('zlib', $ext) ) { + if ( !in_array('zlib', $ext, true) ) { exit("不支持ZLIB组件,请先开启!"); } //检查是否支持curl - if ( !array_search('curl', $ext) ) { + if ( !in_array('curl', $ext, true) ) { exit("不支持CURL组件,请先开启!"); } diff --git a/functions/helper.php b/functions/helper.php index 1b5ead2..19426e4 100755 --- a/functions/helper.php +++ b/functions/helper.php @@ -231,7 +231,7 @@ function check_all_cat(){ * name:检查是否存在明文密码参数,如果存在,则提示重新初始化 */ function unSafe() { - $password = @PASSWORD; + $password = defined('PASSWORD') ? PASSWORD : null; if( isset($password) && $password !== 'PASSWORD' ) { exit("由于安全升级,请删除站点目录下的 data/config.php 文件后,重新完成初始化,此操作不会影响数据!"); diff --git a/templates/admin/click.php b/templates/admin/click.php index cb474fe..316b0dc 100755 --- a/templates/admin/click.php +++ b/templates/admin/click.php @@ -137,13 +137,13 @@