所以我的Evo网站前几天停止工作 - 刚出现500错误。我让我的主人检查日志并找到了:
[error] PHP Fatal error: Cannot redeclare insert_metka() (previously declared in
/home/mysite/public_html/manager/includes/document.parser.class.inc.php(790) : eval()'d code:2)
in /home/mysite/public_html/manager/includes/document.parser.class.inc.php(790) : eval()'d code on line 12
我已经厌倦了评论违规行并删除整个文件无济于事。有谁知道这意味着什么以及如何解决它?
编辑:第790行的代码:
eval ($pluginCode);
答案 0 :(得分:1)
看起来糟糕的插件已经破坏了您的网站。禁用所有插件并一次恢复一次直到它再次中断,然后你知道哪一个是罪魁祸首。
完成后,请在此处发布插件代码,我们可以帮助您进一步调试。您不应该需要修改MODX源代码。
这个问题很可能通过这样包装insert_metka()
声明来解决:
if(!function_exists('insert_metka')) {
function insert_metka() {
// function code
}
}
答案 1 :(得分:0)
这似乎是一个非常简单的问题。您宣布insert_metka()
两次。从其中一个提到的文件中删除它。一旦在保存的文件中声明它,并且显然是第二次尝试在eval()
答案 2 :(得分:0)
Cannot redeclare insert_metka()
说你要宣告一个函数两次(可能是你的遗嘱)。
您应该检查所包含的文件。
为确保不会包含多次,您可以使用include_once
或requiere_once
代替include
和requiere
答案 3 :(得分:0)
根据document.parser.class.inc.php
此行,我猜您使用的是OOP
。
所以你可以做的是为instantiation
以上class
创建overwrite
类,然后declaring
。
还有其他事情。您可以在同一class
内{{1}}使用相同的功能。