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

时间:2019-01-04 07:29:56

标签: php jquery html

我在这里尝试了多种方法,特别是使用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,但结果相同。我在这里做错什么了吗?

3 个答案:

答案 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>";