geoplugin的Php代码不适用于drupal 7

geoplugin的Php代码不适用于drupal 7,php,drupal-7,Php,Drupal 7,我有geoplugin的php代码,如果我将它作为普通的php文件运行,它工作得很好,但是当我将它添加到drupal站点的.tpl.php文件中时,它根本不工作。我已经尝试了很多方法,我从中得到了!其他的也有,但一点也没有。我使用的是var_dump(..),它包含geoplugin数组,但值仅为null。最近我使用的代码是: function visitor_country() { $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @

我有geoplugin的php代码,如果我将它作为普通的php文件运行,它工作得很好,但是当我将它添加到drupal站点的.tpl.php文件中时,它根本不工作。我已经尝试了很多方法,我从中得到了!其他的也有,但一点也没有。我使用的是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;
}

请告诉我这里有什么问题。

一般的想法是,您根本不应该在tpl.php文件中编写任何业务逻辑。php代码可以工作,但不正确。对于该逻辑,您应该有一个单独的模块。您是否尝试在drupal.org上找到合适的模块?我在php上为geoplugin.com和Drupal编写了集成,您可以在这里查看:。当您阅读本文时,它可能已包含在模块的稳定版本中,您可以在此处的项目页面上查看它

不确定此处有何错误。另一种方法:使用一个模块,比如“实际上我想根据国家/地区在我的网站主页上显示国旗和联系号码”,这样用户就可以在那里联系。有一个模块,但它仅适用于Drupal 6。但是,您可以在该页面的附加信息部分查看相关模块。