【发布时间】:2014-05-23 18:15:59
【问题描述】:
我希望提供基于位置的内容,即我希望仅允许位于亚利桑那州的用户查看我页面上显示的视频。但是,亚利桑那州以外的用户也可以查看该页面。我正在使用http://freegeoip.net 网络服务从他们的 IP 地址确定用户位置。
这是嵌入网页的代码
<?php require_once("geofilter.php"); ?>
<?php
if (getRegion()=="Arizona")
//if (getCity()=="Tempe" || getCity()=="Chandler")
{
?>
<iframe src = 'videourl' height='415' width='615' align='top' scrolling='no' frameborder='0'></iframe>
<?php
} else
{
?>
<h1 style="color:#F00">This page is not available in your region: <?php echo (getCity().", ".getRegion());?></h1>
<?php }?>
这是 geofilter.php 的代码
<?php
function getCountry()
{
$pageContent = file_get_contents('http://freegeoip.net/json/');
$parsedJsonCountry = json_decode($pageContent);
return htmlspecialchars($parsedJsonCountry->country_name);
}
function getRegion()
{
$pageContent = file_get_contents('http://freegeoip.net/json/');
$parsedJsonRegion = json_decode($pageContent);
return htmlspecialchars($parsedJsonRegion->region_name);
}
function getCity()
{
$pageContent = file_get_contents('http://freegeoip.net/json/');
$parsedJsonCity = json_decode($pageContent);
return htmlspecialchars($parsedJsonCity->city);
}
function getZipCode()
{
$pageContent = file_get_contents('http://freegeoip.net/json/');
$parsedJsonZip = json_decode($pageContent);
return htmlspecialchars($parsedJsonZip->zipcode);
}
function getIpAddress()
{
$pageContent = file_get_contents('http://freegeoip.net/json/');
$parsedJsonIp = json_decode($pageContent);
return htmlspecialchars($parsedJsonIp->ip);
}
?>
【问题讨论】:
-
你可以尝试对geofilter.php 使用Geofilter 类(例如,Geofilter 类{将geofilter.php 文件的所有内容放在这里})。然后将 Geofilter 类的对象创建为 $obj = new Geofilter();最后通过 if($obj->getRegion()=="Arizona"){...} 检查。