php 限制同一个IP 一段时间不能评论多次,能给我详细解决的
阿神
阿神 2016-11-08 16:10:02
[PHP讨论组]
阿神
阿神

闭关修行中......

全部回复(1)
学习ing

在评论的操作中,都需要记录用户ip地址.评论时间.这是一个好的设计数据库习惯;
不管ip地址、时间对你程序有没有。都建议你这样设计;

1.在写入数据库之前,判断一个条件。在$second秒内,这个$ip 有没有评论;
$ctime = time() - $second; //在$second之前的时间;
$sql = "SELECT id FROM [table] where ip = '$ip' AND postdate > $ctime ";
1.如果这个$sql有结果.则说明这个$ip 在$second秒内,已经评论过;中断程序,并提示用户;
2.如果没有这个$sql没有结果。则继续执行操作,并把评论写入数据库;

//补上一个获取ip地址的函数
function get_client_ip(){
  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
      $ip = getenv("HTTP_CLIENT_IP");
  else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
      $ip = getenv("HTTP_X_FORWARDED_FOR");
  else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
      $ip = getenv("REMOTE_ADDR");
  else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
      $ip = $_SERVER['REMOTE_ADDR'];
  else
      $ip = "unknown";
  return($ip);
}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号