我做了一个简单的跳转页面,生成了很多不一样的唯一的字符串,要求第一次访问这个页面的访客数据中记录第一次访问者的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" />&nbsp;&nbsp;参数为空<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" />&nbsp;&nbsp;无记录<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" />&nbsp;&nbsp;IP没权限<br><br>';
  exit;
  }
  else
  {
 //一致的话就执行跳转
 NewUrl(0,'',$zjh[0]['url']);
 exit;
  }
}
//销毁变量
unset($zjh,$showid,$SQL,$db);
exit;
}
?>