问题:
1.部分站点论坛可以发邮件,而UCHOME设置与论坛完全相同却无法发送邮件。
2.设置个性问题和答案后,明明回答是正确的,但是程序显示不正确。
何时发生:
以上问题只有当“邮件的发送认证的密码”和“个性问题的答案”为以0开始的全部为数字时会出现,如:“邮件的发送认证的密码”为"012345",“个性问题的答案”为区号 "0852"。
原因:
UCHOME的缓存程序将“邮件的发送认证的密码”和“个性问题的答案”的字符串当作数字处理。因此“邮件的发送认证的密码”会变成12345,“个性问题的答案”为区号 852。
解决方法:
修改程序./source/function_cache.php中的函数arrayeval。
增加了红色部分
//数组转换成字串
function arrayeval($array, $level = 0) {
$space = '';
for($i = 0; $i <= $level; $i++) {
$space .= "\t";
}
$evaluate = "Array\n$space(\n";
$comma = $space;
foreach($array as $key => $val) {
$key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
$val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12) || is_string($val) ? '\''.addcslashes($val, '\'\\').'\'' : $val;
if(is_array($val)) {
$evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
} else {
$evaluate .= "$comma$key => $val";
}
$comma = ",\n$space";
}
$evaluate .= "\n$space)";
return $evaluate;
} |