>백엔드 개발 >PHP 튜토리얼 >discuz怎样判断用户是否被激活?

discuz怎样判断用户是否被激活?

WBOY
WBOY원래의
2016-07-06 13:54:091412검색

在pre_ucenter_members表注册用户后,登录论坛的时候是没有激活的。
discuz是怎样判断用户是否被激活的?

在pre_common_member表中一开始是没有这个用户信息的。

我测试后发现:
如果没有设置为直接激活,那么第一次登录的时候就自动在pre_common_member添加用户信息,
如果设置为不直接激活,则在用户第一次登录并且手动激活后在pre_common_member添加用户信息。

但是我一直没有在数据表中找到判断是否已经激活的字段。

我怀疑是不是通过pre_common_member表中的密码字段来判断的?
因为我手动添加信息进去后,并没有真正激活。

而且pre_common_member与pre_ucenter_members两个表中密码的加密方式是不一样的,pre_ucenter_members表中的加密方式网上很容易找到,但我却一直没有找到pre_common_member中密码的加密方式,求解!

总结一下,两个问题:
1.discuz是怎样判断一个账号是否已经被激活的?是不是通过密码来判断的?
2.不论前面问题的答案是什么,我都想知道pre_common_member表中的密码的加密方式是怎样的?

谢谢。

补充:
我发现其实pre_common_member表中的密码并不影响登录,可以随意修改。
所以,可以排除通过密码来判断激活状态。
那么,到底是通过什么来判断用户是否已经被激活呢?

回复内容:

在pre_ucenter_members表注册用户后,登录论坛的时候是没有激活的。
discuz是怎样判断用户是否被激活的?

在pre_common_member表中一开始是没有这个用户信息的。

我测试后发现:
如果没有设置为直接激活,那么第一次登录的时候就自动在pre_common_member添加用户信息,
如果设置为不直接激活,则在用户第一次登录并且手动激活后在pre_common_member添加用户信息。

但是我一直没有在数据表中找到判断是否已经激活的字段。

我怀疑是不是通过pre_common_member表中的密码字段来判断的?
因为我手动添加信息进去后,并没有真正激活。

而且pre_common_member与pre_ucenter_members两个表中密码的加密方式是不一样的,pre_ucenter_members表中的加密方式网上很容易找到,但我却一直没有找到pre_common_member中密码的加密方式,求解!

总结一下,两个问题:
1.discuz是怎样判断一个账号是否已经被激活的?是不是通过密码来判断的?
2.不论前面问题的答案是什么,我都想知道pre_common_member表中的密码的加密方式是怎样的?

谢谢。

补充:
我发现其实pre_common_member表中的密码并不影响登录,可以随意修改。
所以,可以排除通过密码来判断激活状态。
那么,到底是通过什么来判断用户是否已经被激活呢?

  • 首先Discuz的用户激活,其中的Ucenter用户自动激活Discuz论坛用户,你去看看class_member.php中的(约在91行)

<code>$result['ucresult']['uid'];
$user_t=uc_user_login($result["ucresult"]["username"], $result["ucresult"]["password"]);
$user_inf = DB::fetch_first(“SELECT * FROM ”.DB::table(‘common_member’).” WHERE uid=”.$uid);</code>
  • 加密方式md5
    希望对你有帮助

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.