您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

discuz判断用户登录的方法

书瑶2025-07-03Discuz教程已有人查阅

导读在include/common.inc.php文件。程序开始先判断是否有cookie存到了sid值,然后解密cookie['auth']这个用户登录状态加密字符串,如果解密出来有uid值表示用户已登录。

在include/common.inc.php文件。程序开始先判断是否有cookie存到了sid值,然后解密cookie['auth']这个用户登录状态加密字符串,如果解密出来有uid值表示用户已登录。接下来是想要得到用户的基本信息。如果有uid则直接到members表查,如果没有,则根据是否有sid值要不要到sessions表查找(如果有sid,则到sessions查,因为在页面执行过程中footer.html模板执行 了updatesession函数,这个函数是记录在线用户的,已sid作为关键字,如果已登录则一起把用户信息存入,如果没有则只单存入sid值,还是 以sid作为表搜索主关键字插入一条新的记录。
这个就解释了上面讲的为什么当解密出来没有uid值时当有sid值时到session查用户信息,查到还是 没有用户信息时才判定用户没有登录了)。
当这整个执行下来既没有sid值又没有用户信息则表示该用户第一次登录或者cookie值已过期,则random(6)随机给6位数给$sid变量,然后 在common.inc.php程序大概300行左右有判断是否存在sid值并且没有cookie('sid')值时,用cookie存下sid值。这样 用户再次访问时就肯定存有sid值(除非已过期)。这样的话在sessions里就用这个用户,则记下来当前在线人数。
而同步登录的login函数中,则cookie('sid','',-84000*365)掉,其他的正常cookie,这个理解了很久。我的理解是:用 户既然不在discuz登录的,是在别的地方登录,则表明没有在论坛呆过(或者就这样强行的指定没有浏览过,不考虑以前浏览过,还有sid值。因为 updatesession函数会给15分钟未在线的用户的记录给删除了)或者说就强行让sid重新生成。重新插入一条新的记录到sessions表中去。

本文标签:

很赞哦! ()

相关源码

  • WordPress主题模板JustNews资讯博客类源码V5.2.2JustNews主题针对博客创作、自媒体运营及资讯发布类网站的需求而设计,提供专业的内容展示与管理方案。该主题集成前端用户中心功能,支持用户在前端界面发布和投稿文章,操作流程简洁高效。查看源码
  • (PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码
  • (自适应)大型农业机械设备水稻玉米收割机网站pbootcms源码下载本模板基于PbootCMS内核开发,为农业机械设备制造与销售企业设计,特别适合水稻玉米收割机、拖拉机、播种机等农用机械展示。模板充分考虑了农机行业的特性,从产品展示到技术参数,从作业案例到售后服务查看源码
  • (自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码
  • (自适应)html5宽屏电线电缆材料加工制造类企业网站源码下载本模板基于PbootCMS系统开发,特别适合电线电缆、电缆材料及相关加工制造类企业使用。采用HTML5宽屏设计,能够展示各类电缆产品的技术参数和规格详情,帮助客户全面了解产品特性。查看源码
  • 深蓝色风景摄影机构网站(自适应多端)pbootcms模板该模板基于PbootCMS内核开发,专为风景摄影机构、户外摄影企业设计,采用深蓝色主题传递专业与艺术感,全栈响应式架构确保PC、平板、手机端无缝适配PHP程序结合轻量级SQLite数据库也可以更换MySQL数据库查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐