插件无法激活,因为它触发了致命错误?

时间:2010-11-27 作者:Joann

Warning: Invalid argument supplied for foreach() in /.../ipn_res.php on line 28

Warning: Invalid argument supplied for foreach() in /.../ipn_cls.php on line 30

第28行是foreach循环:

foreach ($paypal_ipn->paypal_post_vars as $key=>$value) {
    if (getType($key)=="string") {
        eval("\\$$key=\\$value;");
    }
}
第30行也是foreach循环:

foreach($this->paypal_post_vars AS $key => $value) {
    if (@get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    $values[] = "$key" . "=" . urlencode($value);
}
我认为这些错误的根本原因是:

//This is located before foreach loop in ipn_res.php
require_once("ipn_cls.php");

$paypal_info = $HTTP_POST_VARS;
$paypal_ipn = new paypal_ipn($paypal_info);
类paypal\\u ipn的构造函数传递了一个非数组变量,因为尚未发送任何可填充的内容$HTTP_POST_VARS. Wordpress运行的代码不在其中时就不是这样了。我该如何摆脱这一切?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

联系插件的开发人员,请他修复?。。但我想,如果插件坏得很厉害,并保持这种状态,这可能不是一种选择。

要快速使用创可贴,请在创建对象后立即尝试此方法,以处理构造函数未正确设置字段的情况:

if( !isset( $paypal_ipn->paypal_post_vars ) )
    $paypal_ipn->paypal_post_vars = array();

结束

相关推荐