GEOIP SCRIPT转发部分不工作

时间:2014-02-05 19:56:47

标签: javascript php geolocation

我有一个非常小的脚本,但它有错误,希望这需要2分钟才能轻松修复。

我在做什么......我有网站,称之为website.com。主页上有链接。链接将带人到website.com/link

页面上的网站http://link是脚本。脚本是使用geoip来查明人是来自美国,英国还是其他人。

我想要它做的是将这个人转发到URL1(如果他们来自美国),转发人转发到URL2(如果他们来自英格兰),或转发人转到URL3(如果他们来自其他地方)。

无效的脚本部分是转发部分。我知道GEOIP脚本部分正常工作,因为我使用IMAGE1,IMAGE2和IMAGE3测试了它,并且它工作正常。所以问题是改变脚本,以便将人转发到另一个URL。

这是脚本。

<?php

require_once(ABSPATH.'geoip.inc');
$gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
if($country=='US')
    echo '<?php
header( 'Location: http://www.google.com'; ) ;
?>';
elseif($country=='GB')
    echo '<?php
header( 'Location: http://www.bing.com'; ) ;
?>';
else
    echo '<?php
header( 'Location: http://www.yahoo.com'; ) ;
?>';

?> 

2 个答案:

答案 0 :(得分:0)

也许这足以重定向:

<?php
require_once(ABSPATH.'geoip.inc');

$gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);

if ($country=='US') 
    header('Location: http://www.google.com');
elseif ($country=='GB') 
    header('Location: http://www.bing.com');
else 
    header('Location: http://www.yahoo.com');
?>

答案 1 :(得分:0)

让我们添加exit()。

<?php
    require_once(ABSPATH.'geoip.inc');

    $gi = geoip_open(ABSPATH.'GeoIP.dat', GEOIP_MEMORY_CACHE);
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if ($country=='US')
    {
    header('Location: http://www.google.com');
    exit();
  }
    elseif ($country=='GB') 
    {
        header('Location: http://www.bing.com');
    exit();
    }
    else
    {
        header('Location: http://www.yahoo.com');
    }
?>