Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 防止潜水员插件 for 4.1(后台功能测试中,近期放出)

[复制链接]
 楼主| odo_cd 发表于 2006-5-15 16:05:24 | 显示全部楼层
原帖由 sindow 于 2006-5-15 12:28 发表


已登陆用户的lastpost是已经取好的,好像在common.inc.php还是哪里吧,作为用户信息已经query好了,可以现成的用,变量就是"$lastpost"。

另:您的那句查询,将lastpost取出来赋给了$query,并没 ...


谢谢,我测试一下
回复

使用道具 举报

ywxs 发表于 2006-5-15 16:10:36 | 显示全部楼层
原帖由 odo_cd 于 2006-5-15 16:05 发表


谢谢,我测试一下

老大,有个问题:论坛本来是开放的,就是说游客可以浏览,装了这个后注册反到浏览不了,除非发个主题帖子,能修改下吗?
回复

使用道具 举报

 楼主| odo_cd 发表于 2006-5-15 16:12:52 | 显示全部楼层
原帖由 ywxs 于 2006-5-15 16:10 发表

老大,有个问题:论坛本来是开放的,就是说游客可以浏览,装了这个后注册反到浏览不了,除非发个主题帖子,能修改下吗?



我这个没限制游客啊。。。。。。

我这个只是限制注册用户的
回复

使用道具 举报

sindow 发表于 2006-5-15 16:38:28 | 显示全部楼层
原帖由 odo_cd 于 2006-5-15 16:12 发表



我这个没限制游客啊。。。。。。

我这个只是限制注册用户的


呵呵,他说的问题原因在于,新注册用户初始的$lastpost是没有的,或者说是1970.....的,所以刚注册完,如果碰上了防潜水插件,当然看不了帖了,得发个帖之后才能看帖。
先前我也忘了这点,看来还得再加点条件,防止这个情况
回复

使用道具 举报

ywxs 发表于 2006-5-15 16:45:42 | 显示全部楼层
原帖由 odo_cd 于 2006-5-15 16:12 发表



我这个没限制游客啊。。。。。。

我这个只是限制注册用户的

我测试注册了个新用户,登陆后就不能浏览帖子......
希望只限制设置时间内潜水的用户,也就是说不要限制新注册用户;谢谢了。

[ 本帖最后由 ywxs 于 2006-5-15 17:01 编辑 ]
回复

使用道具 举报

sindow 发表于 2006-5-15 17:07:20 | 显示全部楼层
可以这么写:
如果是没有发表过帖子得新注册会员,就取其注册日期regdate值

if($maxdivedays && $discuz_uid && ($adminid !=array(1,2,3)) && ($thread['authorid'] != $discuz_uid)){
        $lastposttime = $lastpost ? $lastpost : $regdate;

$checkdiving = intval(($timestamp-$lastposttime)/(3600*24));
  if($checkdiving > $maxdivedays)
              showmessage("您已经潜水超过 $maxdivedays 天了,当前只能浏览您自己发的主题<br /><br />您发新帖即可恢复正常浏览,谢谢您对 $bbname 的支持");
}

注意:这个$regdate请在common.ini.php中query得时候顺便query一下就行了,不需要在这里临时query用户表。
那个$maxdivedays 是后台参数,设置最多允许潜水多少天,那个可以参考后台添加settings得方法,较易。

另to楼主:
在viewthread.php中,这段防潜水代码得位置能靠前就靠前,也就是说如果判断出用户潜水达到限制,不让用户看帖得话,那么不需要继续执行的代码就不执行了,以次节约开销。

以上一点愚见
回复

使用道具 举报

ywxs 发表于 2006-5-15 17:12:52 | 显示全部楼层
谢谢楼上老师,且看楼主老师什么意见。
回复

使用道具 举报

ywxs 发表于 2006-5-15 17:15:24 | 显示全部楼层
原帖由 sindow 于 2006-5-15 17:07 发表
可以这么写:
如果是没有发表过帖子得新注册会员,就取其注册日期regdate值

if($maxdivedays && $discuz_uid && ($adminid !=array(1,2,3)) && ($thread != $discuz_uid)){
        $las ...

想测试您的代码,可惜我没有潜水会员账号
回复

使用道具 举报

2010 发表于 2006-5-15 20:49:22 | 显示全部楼层
如能考慮加入2.5F時潜水员插件的功能, 那就更好了

http://www.alan888.com/Discuz/viewthread.php?tid=23426
回复

使用道具 举报

 楼主| odo_cd 发表于 2006-5-15 21:25:36 | 显示全部楼层
原帖由 sindow 于 2006-5-15 17:07 发表
可以这么写:
如果是没有发表过帖子得新注册会员,就取其注册日期regdate值

if($maxdivedays && $discuz_uid && ($adminid !=array(1,2,3)) && ($thread != $discuz_uid)){
        $las ...


我目前就是这样使用的。。。。。。。。

您提出的查询我已经删除了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 05:14 , Processed in 0.042662 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表