今天在研究CodeIgniter 1.6.3和Xajax 0.2.5整合时, 意外发现了xajax 0.2.5版本的一个bug.

xajax 0.2.5版本的主文件xajax.inc.php第747行有一个变量sResponse是没有定义的,在php 4.2以上版本默认关闭register_globals的情况下,会报错.

解决办法:
1.治本的方法,修改xajax.inc.php文件747-755行,引自http://community.xajaxproject.org/viewtopic.php?id=4630

if (is_string($oResponse)) {
$oNewResponse = new xajaxResponse();
$oNewResponse->addAlert(“No XML Response Was Returned By Function $sFunctionName.\n\nOutput: “.$oResponse);
$oResponse = $oNewResponse;
}
else if ($sPreResponse != “”) {
$oNewResponse = new xajaxResponse($this->sEncoding, $this->bOutputEntities);
$oNewResponse->loadXML($sPreResponse);
$oNewResponse->loadXML($oResponse);
$oResponse = $oNewResponse;
}

2.治标的方法,在PHP文件头加上error_reporting(E_ALL   &   ~E_NOTICE);

可以忽略掉PHP的警告提示,程序就可以顺利运行了.

留此存照

—-EOF—-