【发布时间】:2014-01-08 13:29:56
【问题描述】:
我正在尝试向我的网站添加一些代码,以便根据用户的 IP 地址重定向用户。无论我做什么,我都会收到“此网页有重定向循环”消息。
这是我的代码:
if(isset($_GET['FirstTimer'])){
setcookie('FirstTimer','something',strtotime('+1 year'),'/');
$_COOKIE['FirstTimer']='something';
}
require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
if(!isset($_COOKIE['FirstTimer'])):
if($_SERVER['REQUEST_URI'] == '/'){
switch((string)$country) {
case 'GR':
header('Location: http://mywebsite.com/');
break;
case 'RU':
header('Location: http://mywebsite.com/ru');
break;
default:
header('Location: http://mywebsite.com/en');
}
}
endif;
geoip_close($gi);
“FirstTimer”cookie 用于确定访问者是否是新访问者(因为我只想重定向新访问者)。
代码放在我的index.php文件的顶部,'\'标签前没有空格。
【问题讨论】:
-
在
if(!isset($_COOKIE['FirstTimer'])):之前直接尝试die($_COOKIE['FirstTimer']);看看是否有意义 -
我试过了,加载了空白页。
-
很好,所以它是空的。为什么您帖子第 1 行的代码未正确设置
$_COOKIE['FirstTimer']? -
改用
die('<pre>'.print_r($_COOKIE, true).'</pre>'); -
我更新了我的答案。看看它。这是另一种观点,因为我认为您在第一次访问时设置查询参数不会有太多运气。