为什么会出现这个错误? 错误是 致命错误:无法重新声明第219行cr.php中的anp_realip()(之前在cr.php:196中声明)E_COMPILE_ERROR文件�cr.php�第219行出错:无法重新声明anp_realip()(之前在cr.php中声明) :196)
第196行是$ ip = FALSE; 第219行是函数的结尾}(最后一个)。
function anp_realip()
{
// No IP found (will be overwritten by for
// if any IP is found behind a firewall)
$ip = FALSE;
// User is behind a proxy and check that we discard RFC1918 IP addresses
// if they are behind a proxy then only figure out which IP belongs to the
// user. Might not need any more hackin if there is a squid reverse proxy
// infront of apache.
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
// Put the IP's into an array which we shall work with shortly.
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
for ($i = 0; $i < count($ips); $i++) {
// Skip RFC 1918 IP's 10.0.0.0/8, 172.16.0.0/12 and
// 192.168.0.0/16
// below.
if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
// Return with the found IP or the remote address
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
好的,所以将debug设置为2我在计算机上得到这个:
用户不在例外列表中 没有为当前访问者保存国家/地区代码(_DEBUG_MODE = 1可防止发送cookie); cookie名称:anp_810c087185 该访客的国家代码是从COOKIE / SESSION加载的:&#39;无&#39; 从文字中获取国家:&#39; IT&#39; 查找国家/地区的网址&#39; IT&#39; 致命错误:无法重新声明第219行cr.php中的anp_realip()(之前在cr.php:196中声明)E_COMPILE_ERROR文件�cr.php�第219行出错:无法重新声明anp_realip()(之前在cr.php中声明) :196)
我的一位朋友在另一台电脑上得到了这个:
用户不在例外列表中 没有为当前访问者保存国家/地区代码(_DEBUG_MODE = 1可防止发送cookie); cookie名称:anp_810c087185 该访客的国家代码是从COOKIE / SESSION加载的:&#39;无&#39; 从文字中获取国家:&#39; NL&#39; 查找国家&地区的网址&#39; NL&#39; 访问者现在应该重定向到http://www.test.com
那怎么样,为什么这对我不起作用但对他有用呢?试图清除浏览器捕获,没有运气。你能帮忙吗?
答案 0 :(得分:1)
当您require
或include
同一文件两次时,有时会发生这种情况。切换到require_once
和/或include_once
(如果尚未要求/包含文件,则只需要/包含文件)。
你可能正在加载这个文件两次,并且在第二次加载时,PHP会抱怨已经定义了这个函数。