首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的PHP重定向脚本不起作用。特别是来自geoplugin.net的。有什么建议吗?

简单的PHP重定向脚本不起作用。特别是来自geoplugin.net的。有什么建议吗?
EN

Stack Overflow用户
提问于 2019-01-04 15:29:56
回答 3查看 297关注 0票数 0

我在这里尝试了很多方法,特别是使用了Geoplugin.net的api。我在加拿大开了一家小商店/网站。我正在尝试重定向从加拿大以外的用户到我们的国际商店网站。如果在美国if去美国唯一的网站。代码托管在加拿大网站上。

代码语言:javascript
运行
复制
<?php
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp? 
ip='.$_SERVER['REMOTE_ADDR']));
$countrycode= $a['geoplugin_countryCode'];
if ($countrycode=='US')
header( 'Location: http://USASTORE.com' ) ;
else 
header( 'Location: http://internationalstore.com' ) ;

?>

使用这个简单的代码,我几乎可以肯定它是正确设置的。出于某种原因,不管是什么,它总是重定向到internationalstore.com。我尝试了美国的IP和CA的IP,结果是一样的。我是不是做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2019-01-04 16:00:49

我要说的是你有问题

代码语言:javascript
运行
复制
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp? 
ip='.$_SERVER['REMOTE_ADDR']));

它应该是(没有空格或换行)。

代码语言:javascript
运行
复制
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));

这对我来说很好:删除了ip='.$_SERVER['REMOTE_ADDR']),因为在本地服务器上测试,并返回正确的结果。

代码语言:javascript
运行
复制
<?php
 $a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp'));
 $countrycode = $a['geoplugin_countryCode'];
 if ($countrycode == 'US'){
    var_dump('US');
 }elseif ($countrycode == 'AU'){ 
    var_dump('AU');
 }else{ 
    var_dump('Other');
 }
 ?>

经过测试和工作的代码:

代码语言:javascript
运行
复制
<?php
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR'])); 
$countrycode = $a['geoplugin_countryCode']; 
if ($countrycode == 'US'){ 
    header( 'Location: http://USASTORE.com' ); 
}elseif ($countrycode == 'AU'){ 
    header( 'Location: http://AUSTORE.com' ); 
}else{ 
    header( 'Location: http://DEFAULTSTORE.com' ); 
} 
?>
票数 1
EN

Stack Overflow用户

发布于 2019-01-04 16:15:25

我认为这方面的一个错误

代码语言:javascript
运行
复制
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp? 
ip='.$_SERVER['REMOTE_ADDR']));
$countrycode= $a['geoplugin_countryCode'];

所以你首先使用var_dump($countrycode);然后你就可以很容易地找到解决方案。

谢谢。

票数 0
EN

Stack Overflow用户

发布于 2019-01-04 15:37:37

试一试

代码语言:javascript
运行
复制
echo "<script>window.location.assign('http://internationalstore.com')</script>";

而不是

代码语言:javascript
运行
复制
header( 'Location: http://internationalstore.com' ) ;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54034712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档