警告:请在第1295行的/public_html/install/index.php上与支持小组联系以了解相关信息
致命错误:函数名称必须是第1296行/public_html/install/index.php中的字符串
好的,所以我在解释整个事情上做得不好。所以基本上我正在尝试在我的网站上安装Boonex Dolphin 7.0.6(社交网络CMS)。我正确安装了所有文件。我去了安装页面。去了第二页,我必须把所有文件写成可写的。一旦我将所有文件写成Writable,我就进入了名为“Paths”的下一页。这就是它给我上面的错误的地方。该文件有超过1483行。这是下面的代码。
它所说的$func = create_function("", $funcbody);
那就是1295号线
第1281 - 1350行
function printInstallError($sText) {
$sRet = (strlen($sText)) ? '<div class="error">' . $sText . '</div>' : '';
return $sRet;
}
function createTable($arr) {
$ret = '';
$i = '';
foreach($arr as $key => $value) {
$sStyleAdd = (($i%2) == 0) ? 'background-color:#ede9e9;' : 'background-color:#fff;';
$def_exp_text = "";
if (strlen($value['def_exp'])) {
$funcbody = $value ['def_exp'];
$func = create_function("", $funcbody);
$def_exp = $func();
if (strlen($def_exp)) {
$def_exp_text = " <font color=green>found</font>";
$value['def'] = $def_exp;
} else {
$def_exp_text = " <font color=red>not found</font>";
}
}
$st_err = ($error_arr[$key] == 1) ? ' style="background-color:#FFDDDD;" ' : '';
$ret .= <<<EOF
<tr class="cont" style="{$sStyleAdd}">
<td>
<div>{$value['name']}</div>
<div>Description:</div>
<div>Example:</div>
</td>
<td>
<div><input {$st_err} size="30" name="{$key}" value="{$value['def']}" /> {$def_exp_text}</div>
<div>{$value['desc']}</div>
<div style="font-style:italic;">{$value['ex']}</div>
</td>
</tr>
EOF;
$i ++;
}
return $ret;
}
function rewriteFile($sCode, $sReplace, $sFile) {
$ret = '';
$fs = filesize($sFile);
$fp = fopen($sFile, 'r');
if ($fp) {
$fcontent = fread($fp, $fs);
$fcontent = str_replace($sCode, $sReplace, $fcontent);
fclose($fp);
$fp = fopen($sFile, 'w');
if ($fp) {
if (fputs($fp, $fcontent)) {
$ret .= true;
} else {
$ret .= false;
}
fclose ( $fp );
} else {
$ret .= false;
}
} else {
$ret .= false;
}
return $ret;
}
如果您需要更多代码请告诉我,所以我也可以帮助您阅读此^ _ ^并重新帮助。我也尝试了最后一个人说的添加“$ a”和“;”但它没有帮助。给我带来了更多的错误。
答案 0 :(得分:1)
什么可以存储在$value['def_exp']
?
因为您的create_function
来电未返回值。或者看起来如此。我做了一个简单的模拟来展示一个例子:
$funcbody = 'hello';
$func = create_function('$a', 'return $a;');
$def_exp = $func($funcbody);
这可以按预期工作。根据{{1}}中的内容,您需要在IE之后添加$funcbody
:
;
前面是$func = create_function('$a', $funcbody . ';');
,后面是return
:
;
或者将其作为参数传递,就像我在第一个示例中所做的那样。不确定你需要哪些,因为我不知道$func = create_function('$a', 'return ' . $funcbody . ';');
中存储了什么,但希望能让你滚动。
答案 1 :(得分:1)
create_function()可能失败了。尝试
var_dump( $func );
如果是false
,那么这就是原因,您应该查看$funcbody