You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.0升级后Coppermine相册出现get_magic_quotes_runtime()未定义错误求助

修复Coppermine相册在PHP 8.0下的get_magic_quotes_runtime()致命错误

问题根源

get_magic_quotes_runtime()是PHP 4/5时代的旧函数,PHP 7.4已被废弃,PHP 8.0彻底移除。你使用的Coppermine 1.6.x版本未适配PHP 8.0,调用这个不存在的函数就触发了致命错误。

分步修复方案

1. 替换init.inc.php中的错误代码

打开/customers/2/9/4/toneelgroepcontactharlingen.nl/httpd.www/cpg16x/include/init.inc.php,定位到第62行的相关代码(应为调用get_magic_quotes_runtime()的判断逻辑),将原代码替换为:

// 兼容PHP 8.0:仅在函数存在时执行旧逻辑
if (function_exists('get_magic_quotes_runtime')) {
    if (get_magic_quotes_runtime()) {
        set_magic_quotes_runtime(0);
    }
}

这段代码先检查函数是否存在,PHP 8.0下函数不存在会直接跳过,避免报错;旧PHP版本则正常执行原有逻辑。

2. 全局排查其他相同调用

Coppermine 1.6.x可能在其他文件里也用到了get_magic_quotes_runtime()或set_magic_quotes_runtime(),可以通过文件管理器的全局搜索功能(或SSH下执行grep -r "get_magic_quotes_runtime" ./cpg16x/)找到所有调用,都用上述function_exists()判断逻辑包裹。

3. 终极方案:升级Coppermine

如果修复后仍有其他PHP 8.0兼容性问题,建议直接升级到Coppermine官方最新稳定版(升级前务必备份相册的所有文件和数据库),新版本已适配PHP 8.x系列。

为什么注释原代码没用?

单纯注释第62行只是跳过了这一处调用,但后续代码可能依赖magic_quotes_runtime的关闭状态,或者其他文件里还有相同的错误调用,因此问题未彻底解决。用函数存在性判断的方式,既能兼容新旧PHP版本,又能从根源避免函数未定义错误。

内容的提问来源于stack exchange,提问作者mierlo87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:01:53