geoplugin的PHP代码不适用于drupal 7

时间:2014-04-24 06:11:06

标签: php drupal-7

我有geoplugin的php代码,它运行正常,如果我将它作为普通的php文件运行但是当我在.tpl.php文件的drupal站点中添加它时,它不工作在所有。我尝试了许多从here得到的方法!还有其他但根本没有。我正在使用var_dump(..),它包含geoplugin数组但值仅为null。最近我的代码是我正在使用的:

function visitor_country()
{
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote  = $_SERVER['REMOTE_ADDR'];
$result  = "Unknown";
if(filter_var($client, FILTER_VALIDATE_IP))
{
    $ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{
    $ip = $forward;
}
else
{
    $ip = $remote;
}
$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
    $result = $ip_data->geoplugin_countryName;
}
    return $result;
}

请告诉我这里的错误。

1 个答案:

答案 0 :(得分:0)

一般的想法是你根本不应该在tpl.php文件中编写任何商业逻辑。 PHP代码将工作,但它是不对的。你应该有一个单独的模块用于该逻辑。你有没有试过在drupal.org上找到合适的模块?我在php上编写了geoplugin.com和Drupal的集成,你可以在这里查看:https://www.drupal.org/node/2452375。当您阅读本文时,它可能包含在模块的稳定版本中,您可以在项目的页面上查看https://www.drupal.org/project/geoplugin