在 Revive 4.1.1 中添加 html5 横幅会导致 PHP 致命错误:无法重新声明 Plugin_BannerTypeHTML_delivery_adRender
Posted
技术标签:
【中文标题】在 Revive 4.1.1 中添加 html5 横幅会导致 PHP 致命错误:无法重新声明 Plugin_BannerTypeHTML_delivery_adRender【英文标题】:Add html5 banner in Revive 4.1.1 gives PHP fatal error: Cannot redeclare Plugin_BannerTypeHTML_delivery_adRender 【发布时间】:2018-04-13 21:36:39 【问题描述】:当我在 Revive 4.1.1 中向广告系列添加 html5 横幅并单击“保存更改”时,我在管理中看到一个空白页面。 Apache 错误日志包含:
php 致命错误:无法在 /home/applinet/local/ads 中重新声明 Plugin_BannerTypeHTML_delivery_adRender()(之前在 /home/applinet/local/ads/www/lib/OX/Extension/bannerTypeHtml/bannerTypeHtmlDelivery.php:31 中声明) /www/lib/OX/Extension/bannerTypeHtml/bannerTypeHtmlDelivery.php 第 31 行
这可能是什么原因造成的?
我在 Debian 9.2 Linux 上使用 Revive 4.1.1(从之前的 4.0 和 OpenX 升级)和 PHP 7.0 和 mysql 5.5。
【问题讨论】:
您是否包含/要求同一个文件两次?如果是这样,也许你想使用include_once
或require_once
(注意:我不知道你在使用什么,真的只知道php)。
【参考方案1】:
我会说您应该找到再次声明函数的位置并将其删除。然而……
一个肮脏的修复就是这样; 找到 Plugin_BannerTypeHTML_delivery_adRender() 函数的声明位置(在 bannerTypeHtmlDelivery.php 中)
然后添加此代码;
if (!function_exists('Plugin_BannerTypeHTML_delivery_adRender'))
// the funtion doesnt already exists so declare it here
function Plugin_BannerTypeHTML_delivery_adRender()
//all the function stuff here.
澄清....只需将现有函数包装在 if 块中。
正如我所说,这是一个肮脏的修复。
【讨论】:
以上是关于在 Revive 4.1.1 中添加 html5 横幅会导致 PHP 致命错误:无法重新声明 Plugin_BannerTypeHTML_delivery_adRender的主要内容,如果未能解决你的问题,请参考以下文章