2014-02-05 37 views
0

我有一個非常小的腳本,但有錯誤,希望這需要2分鐘才能輕鬆修復。GEOIP SCRIPT轉發部分不工作

我在做什麼......我有網站,稱之爲website.com。主頁上有鏈接。鏈接將帶人到網站/鏈接

在頁面website.com/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';) ; 
?>'; 

?> 
+0

'echo'<?php' - 這是什麼?! – vladkras

回答

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'); 
?> 
+0

不工作。 :( –

+0

1.什麼返回'print_r($ country)'?2.您是否看到任何錯誤?3.這部分之前是否有任何輸出,例如'echo'? – vladkras

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'); 
    } 
?>