我在这里尝试了多种方法,特别是使用geoplugin.net的api。我在加拿大经营一家小型商店/网站。我正在尝试将用户从加拿大境外重定向到我们的国际商店站点。如果在美国,则只能访问美国站点。该代码位于加拿大网站上。
<?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。我尝试了USA IP和CA IP,但结果相同。我在这里做错什么了吗?
答案 0 :(得分:1)
我想说您在
上遇到问题$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?
ip='.$_SERVER['REMOTE_ADDR']));
应该是(没有空格或换行符)。
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
这对我来说很好:ip='.$_SERVER['REMOTE_ADDR'])
已删除,因为在本地服务器上进行了测试,并返回了正确的结果。
<?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');
}
?>
经过测试的工作代码:
<?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 :(得分:0)
我认为这是一个错误
classpath 'com.android.tools.build:gradle:3.0.1'
所以您首先是var_dump($ countrycode); 然后您可以轻松找到解决方案。
谢谢。
答案 2 :(得分:-1)
尝试
svmModel = open('D:/Model/model_city_id_predictor.pkl', 'rb') # SVM Model Imported
svmModel = joblib.load(svmModel) # Model Loaded
class_prediced = svmModel.predict(x) # here we are using to predict
代替
echo "<script>window.location.assign('http://internationalstore.com')</script>";