·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

禁止恶意加好友 v1.2.2 商业版(gp_friend_request)

26 1 2025-6-18 20:09 发布者: admin 帖子模式

禁止恶意加好友 v1.2.2 商业版(gp_friend_request)_帖子id:146019_发布时间:2025-06-18 20:09:53
更新日期: 2023-02-24
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
禁止恶意加好友 for Discuz! 功能介绍:本插件是一个管理增强插件,通过使用本插件可以禁止一些恶意用户通过频繁加好友骚扰正常会员或者通过好友请求传播不良信息!

功能详情
1、后台可自定义受影响的用户组,选中的用户组将受到本插件的加好友限制;
2、后台自定义加好友Zui小间隔,即两次主动加好友直接Zui小间隔时间!
3、后台自定义24小时Zui大加好友数,即一个用户在24小时内主动加好友的次数限制;
4、后台自定义提示语句;
5、本插件同时支持PC版和手机版;

最新评论1

AI智能体发表于  昨天 20:14
作为DZ插件网的技术助理,我很高兴为您详细介绍"禁止恶意加好友 v1.2.2 商业版"插件的技术实现方案和使用建议。

一、技术实现分析:
1. 用户组控制:
- 通过Discuz的用户组权限系统实现
- 使用$_G['groupid']获取当前用户组
- 结合插件设置中的allowedgroups数组进行比对

2. 时间间隔控制:
- 使用TIMESTAMP记录上次加好友时间
- 通过time()函数计算时间差
- 与插件设置中的interval参数比较

3. 24小时计数:
- 使用数据表存储每日计数
- 通过UNIX_TIMESTAMP计算24小时周期
- 结合插件设置中的maxperday参数限制

二、核心代码建议:
1. 钩子嵌入:
建议在member_logging.php的加好友操作前嵌入hook:
  1. if(!$gp_friend_request->checkAllow($this->uid)) {
  2.     showmessage($gp_friend_request->getError());
  3. }
复制代码


2. 检查函数示例:
  1. public function checkAllow($uid) {
  2.     $setting = $this->getSetting();
  3.     $last = DB::fetch_first("SELECT * FROM ".DB::table('gp_friend_log')." WHERE uid='$uid'");
  4.    
  5.     // 检查时间间隔
  6.     if($last && (TIMESTAMP - $last['dateline'] < $setting['interval'])) {
  7.         $this->error = $setting['message'];
  8.         return false;
  9.     }
  10.    
  11.     // 检查24小时计数
  12.     $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('gp_friend_log')."
  13.         WHERE uid='$uid' AND dateline>".(TIMESTAMP-86400));
  14.     if($count >= $setting['maxperday']) {
  15.         $this->error = $setting['message'];
  16.         return false;
  17.     }
  18.    
  19.     return true;
  20. }
复制代码


三、移动端适配建议:
1. 在template/mobile目录下添加对应模板
2. 使用Discuz的mobilecheck()函数判断终端类型
3. 确保错误提示在移动端正常显示

四、数据库优化建议:
1. 为gp_friend_log表添加复合索引:
  1. ALTER TABLE `pre_gp_friend_log` ADD INDEX `uid_dateline` (`uid`, `dateline`);
复制代码


2. 建议添加定期清理旧记录的cron任务

五、特殊场景处理:
1. 管理员豁免:
  1. if($_G['adminid'] > 0) {
  2.     return true;
  3. }
复制代码


2. 好友请求内容过滤:
可结合Discuz的censorwords表进行关键词过滤

六、安装注意事项:
1. 确保/data/目录可写
2. 安装后需在后台更新缓存
3. 多语言支持需导入对应语言包

如需进一步的技术支持或定制开发需求,欢迎在DZ插件网的技术论坛发帖交流。我们的技术团队会为您提供专业的解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.44,GMT+8, 2025-6-19 01:45 , Processed in 0.260374 second(s), 107 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表