Heim  >  Artikel  >  Backend-Entwicklung  >  届期自动解禁功能实现

届期自动解禁功能实现

WBOY
WBOYOriginal
2016-06-13 12:04:51875Durchsuche

到期自动解禁功能实现
朋友们..想请教一个问题...假如我封禁一个用户一天....一天到期后,自动解禁功能通常是怎么实现的呢?.. 
------解决方案--------------------
脚本定期执行,把到期解禁的用户解禁
------解决方案--------------------

引用:
Quote: 引用:

解禁的前提是用户要登录,如果用户因封禁不再登录了,你怎么解也都没有用
封禁的信息是与用户关联的,只要在用户登录时检查一下就可以了
如需要修改状态,也在此时

多谢版主大神,,我想实现的是,封禁该用户发言功能..但是其他比如浏览等功能照常...
我这样设想:
正常用户`状态字段`都是1...
禁言用户 `状态字段`  设为time()+禁言时间...
每次权限判断都要看一下`状态字段`值是否小于time()...
但是这样 sql查询时.....但是每次判断是否小于time() 肯定没有判断是否为1来的快吧...

同意在登陆时做检查。
1.封禁用户最多占网站整体用户的20%(如果封禁用户到达80%,那这个论坛也就快关了),没必要用80%的时间做各种各样的设计和开发(诸如自动执行脚本之类,这会给你增加维护成本);
2.封禁用户并非网站的典型用户,即使他登陆时,sql查询慢点,有何不可?别本末倒置;
------解决方案--------------------
引用:
Quote: 引用:

解禁的前提是用户要登录,如果用户因封禁不再登录了,你怎么解也都没有用
封禁的信息是与用户关联的,只要在用户登录时检查一下就可以了
如需要修改状态,也在此时

多谢版主大神,,我想实现的是,封禁该用户发言功能..但是其他比如浏览等功能照常...
我这样设想:
正常用户`状态字段`都是1...
禁言用户 `状态字段`  设为time()+禁言时间...
每次权限判断都要看一下`状态字段`值是否小于time()...
但是这样 sql查询时.....但是每次判断是否小于time() 肯定没有判断是否为1来的快吧...

为什么要每次SQL查询来判断呢?你可以在登陆的时候就把数据读出来,跟登陆状态放一起(一般是Session或者Cookie),直接与这里的数据对比就行了。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn