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