Home  >  Q&A  >  body text

php - 像或知乎这样的注册账号后不激活无法提问是如何实现的?

是在用户表里加个字段,每次要提问时都查询一下么?

PHP中文网PHP中文网2749 days ago420

reply all(7)I'll reply

  • 怪我咯

    怪我咯2017-04-10 16:08:19

    简单来说,是这样的。
    你可以参考Leancloud的默认用户表,看下图,一个字段存邮箱地址(string),一个字段存邮箱是否验证过(bool)。
    然后每次提问的时候就去查一下emailVerified字段是否为false。

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 16:08:19

    在提问操作提交之后,先检测该用户的激活字段,True就允许,False就拦截

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 16:08:19

    这就是很基本的权限验证啦,可能是一个bool,当然更加可能是一个整形或者整形中的某个位,猜测 seg 的权限等级用一个一个整形,权限级别可能划分为好多个段,可以参考这里:
    http://segmentfault.com/repu?_ea=109887

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 16:08:19

    撰写一个权限控制类
    在控制类里面扩展方法

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:08:19

    用户状态:0刚注册成功 1已验证 2封号
    只有用户状态为1的才可以正常提问

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 16:08:19

    我猜测,很可能就是数据库中的一个字段,status 里面就固定未激活。已激活等等状态,根据状态有一定的权限,然后登录后能做某些事,未激活的一点击提问就提示去绑定邮箱激活吧,
    看了楼下的答案,我想到了就是用户登录后会把用户信息存到session中而不是每次用到的时候去查询数据库

    reply
    0
  • 黄舟

    黄舟2017-04-10 16:08:19

    肯定是在数据库一个字段表示验证状态,可为整形值或布尔值。
    至于读取这个值,估计是放在系统的缓存中直接读取,而不是每次都要重新查询。

    reply
    0
  • Cancelreply