A-A+

php+mysql留言本锁定功能原理

2012年04月16日 PHP技术文章 暂无评论 阅读 67 views 次

如果在PHP留言本当中要禁止某个访问者的发言,通常都是将这个访问者进行锁定,当这个访问者再次进行浏览时,显示“抱歉!您已经被管理员锁定,可能因为您发表了不合适言论”等,这样的功能其实就是直接进行锁定访问者的IP地址。

我们知道,每个访问者都有一个自己的IP地址,在PHP中可以通过语句 $ip=$_SERVER['REMOTE_ADDR'];将访问者的IP地址赋值到变量$ip里面,然后在进行留言时 insert 到数据库里。这样数据库里面已经有了访问者的IP地址了。

那么我们再新建一个专门锁定IP地址的数据表,进行如下语句锁定:

$sql="insert into lockip (lockip) values ('$ip')";   
mysql_query($sql);

在夏日博客精简的PHP+MYSQL留言本中进行了留言锁定的完善,比如当我们重复进行锁定IP时,会提示“此IP已经被锁定”,否则的话便是锁定成功,下面看源码文件:

<?php   
  require_once('../admincheck.php'); //验证后台登录的文件   
 require("../mrconn.php");  //数据库连接文件   
 $ip=$_GET&#91;"ip"&#93;;    //接受数据库里访客的IP   
 $pageno=$_GET&#91;"pageno"&#93;;  //接受过来的页码,返回到相应页码   
 $sql="select * from lockip where lockip='$ip'";  //从 
lockip 数据表中查询接受过来的IP   
 $rs=mysql_query($sql);  //执行查询 SQL   
 if(mysql_num_rows($rs)==0)   
 {   
  $sql="insert into lockip (lockip) values ('$ip')";   
  mysql_query($sql);   
  ?>   
  <script language="javascript">   
   alert("锁定成功");   
   location.href="admin.php?pageno=<?php echo $pageno?>"  
  </script>   
  <?php   
 }  // 判断语句,如果数据库无此IP,便进行锁定   
 else  
 {   
 ?>   
 <script language="javascript">   
  alert("此ip已经被锁定")   
  location.href="admin.php?pageno=<?php echo $pageno?>"  
 </script>   
 <?php   
 }  //判断语句,否则的话,进行已经锁定的提示   
?>

其实就是判断访客的 IP,而锁定的数据表是一个单独的数据表,如果数据表里有此IP,则进行锁定,否则便会提示。

标签:

给我留言