我做了一个简单的跳转页面,生成了很多不一样的唯一的字符串,要求第一次访问这个页面的访客数据中记录第一次访问者的IP,下次访问只准此IP访问,就这么简单一个页面。遇到了一个大问题,请各位帮我看下,问题出在哪里?郁闷的情况是:固定IP访客可以实现刚才的效果,只要访问一次就记录第一次访问的IP,以后只准此用户访问。可是ADSL用户就不行,我知道是动态IP,可是第一次访问就访问不了,就被显示IP限制了,代码我贴出来,高手帮我看下,哪里有问题?代码:
<?php
include_once('Inc/Config.inc');
include_once('Inc/Function.php');
//判断参数是否为空
if(!isset($_GET['id'])||empty($_GET['id']))
{
echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> 参数为空<br><br>'; exit;
}
else
{
//获取ID参数
$showid=trim($_GET['id'], '/');
$userid=real_ip();
//执行参数查询,获取记录集
$zjh = $db->SelectSQL("SELECT `uid`,`url`,`uip` FROM create_url where uid='".$showid."' order by uid desc LIMIT 1");
//记录集里是否有记录
if(count($zjh)==0){echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> 无记录<br><br>'; exit;}
//判断记录集里面允许IP是否为空
if(empty($zjh[0]['uip'])||$zjh[0]['uip']==NULL)
{
//如果为空时插入当前用户的IP,也就是第一次访问的访客
$SQL = "UPDATE `create_url` SET `uip` = '" . $userid . "' WHERE `uid` = '" . $showid . "' LIMIT 1; ";
$db->ExecuteSQL($SQL,1);
//插入成功后跳转到数据库里面指定的网址
NewUrl(0,'',$zjh[0]['url']);
exit;
}
else
{
//判断数据库记录集中IP值不为空时,再次判断和当前用户IP是否一致
if($zjh[0]['uip']!= $userid)
{
//不一致就拒绝跳转
echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> IP没权限<br><br>';
exit;
}
else
{
//一致的话就执行跳转
NewUrl(0,'',$zjh[0]['url']);
exit;
}
}
//销毁变量
unset($zjh,$showid,$SQL,$db);
exit;
}
?>
<?php
include_once('Inc/Config.inc');
include_once('Inc/Function.php');
//判断参数是否为空
if(!isset($_GET['id'])||empty($_GET['id']))
{
echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> 参数为空<br><br>'; exit;
}
else
{
//获取ID参数
$showid=trim($_GET['id'], '/');
$userid=real_ip();
//执行参数查询,获取记录集
$zjh = $db->SelectSQL("SELECT `uid`,`url`,`uip` FROM create_url where uid='".$showid."' order by uid desc LIMIT 1");
//记录集里是否有记录
if(count($zjh)==0){echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> 无记录<br><br>'; exit;}
//判断记录集里面允许IP是否为空
if(empty($zjh[0]['uip'])||$zjh[0]['uip']==NULL)
{
//如果为空时插入当前用户的IP,也就是第一次访问的访客
$SQL = "UPDATE `create_url` SET `uip` = '" . $userid . "' WHERE `uid` = '" . $showid . "' LIMIT 1; ";
$db->ExecuteSQL($SQL,1);
//插入成功后跳转到数据库里面指定的网址
NewUrl(0,'',$zjh[0]['url']);
exit;
}
else
{
//判断数据库记录集中IP值不为空时,再次判断和当前用户IP是否一致
if($zjh[0]['uip']!= $userid)
{
//不一致就拒绝跳转
echo '<img src="Inc/images/check_error.gif" width="16" height="16" /> IP没权限<br><br>';
exit;
}
else
{
//一致的话就执行跳转
NewUrl(0,'',$zjh[0]['url']);
exit;
}
}
//销毁变量
unset($zjh,$showid,$SQL,$db);
exit;
}
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货