WeCenter 3.1.9报错An error occurred (500 Error)

通过F12打开调试窗口可以看到报错信息如下

Application error ------ Message: Zend_Session::start() - /www/wwwroot/lin.apuxi.cn/system/Zend/Db/Table/Abstract.php(Line:1307): Error #2 count(): Parameter must be an array or an object that implements Countable /www/wwwroot/lin.apuxi.cn/system/Zend/Db/Table/Abstract.php(Line:1307): Error #2 count(): Parameter must be an array or an object that implements Countable File: /www/wwwroot/lin.apuxi.cn/system/Zend/Session.php Line: 495 ------ Build: 3.1.9 20160523 PHP Version: 7.4.33 URI: / User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0 Accept Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 IP Address: 117.85.64.149 ------ #0 /www/wwwroot/lin.apuxi.cn/system/aws_app.inc.php(147): Zend_Session::start() #1 /www/wwwroot/lin.apuxi.cn/system/aws_app.inc.php(56): AWS_APP::init() #2 /www/wwwroot/lin.apuxi.cn/index.php(23): AWS_APP::run() #3 {main}

错误根源

错误出在 Zend_Db/Table/Abstract.php 文件的第 1307 行,这里的count()函数接收了一个无效参数。在 PHP 5.6 及之前的版本中,对非数组或非 Countable 对象使用count()函数只会返回 0,同时产生一个 E_WARNING 级别的错误;但到了 PHP 7.2 及之后的版本,这种情况会导致 E_WARNING 错误,而在 PHP 7.4 中则会直接引发致命错误。

解决办法

你需要对 Zend_Db/Table/Abstract.php 文件进行修改,在使用count()函数之前先对参数进行类型检查。下面是修改建议

// 修改后的代码
if (!is_array($keyValues) && !($keyValues instanceof Countable)) {
    $keyValues = []; // 将非数组/非Countable转换为空数组
}
$keyValuesCount = count($keyValues);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一挽春风十里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值