discuz在数据库里插入指定UID的用户,前台却无法登陆 什么原因..

发布于 2021-11-15 23:42:08 字数 483 浏览 914 评论 9

这就是插入用户时的界面 是不是密码那个栏还要选择个函数 我以前是没有选择 用密码在前台登陆不行 进不去 !希望高手给解决一下....谢谢.......

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

断爱 2021-11-16 04:50:19

引用来自#8楼“杨金焕”的帖子

我想告诉你,要搞清楚这个问题,最好的办法就是先看看uc_client里说的一个用户添加的办法。

当然,你如果想在phpmyadmin这样的数据管理软件里添加用户,我想说说dz的用户登陆验证过程:

discuz6以后的所有版本,如d7.0-d7.2,虽然discuz里都有一个用户表members,但实际的登陆过程是建立在ucenter的基础上的,(如果你安装d7.0--,它会问你是不已经安装center,设定ucenter,否则是不能安装的)。

所以,ucenter里有一也有一个用户表,如果ucenter和discuz整合安装,就里cdb_uc_members这个表,这个表的用户数据就是discuz的反映。

它门有什么关系呢?这要从comsenz的产品结构说起,comsenz的所以产品都是建料在ucenter的,所有的用户数据都是ucenter管理的,如一个大型的站点:有bbs,社区,游戏应用,blog,supesite都就是comsenz的产品,它们为了统一登陆,所以就以ucenter为中心管理登接口,再同步到不同的应用。

discuz的用户数据是这样的:

cdb_members的密码:$password = md5('实际密码的明码');

ucenter的用户数据是这样:

cdb_uc_members的密码:

$salt = rand(100000, 999999);
$password = md5(md5('实际密码的明码'').$salt);

注:cdb_uc_members表里有个salt这个字段,一定要记录密码从discuz到ucenter加密里的salt,否则不能登陆。

discuz和ucenter用户名一一对应,它们的功能有不同。

先说一下注册的过程:在各个应用中(supesite,uchome,discuze)注册,先把用户名,密码,email记录cdb_members,再记录在cdb_uc_member这个表中。

如果你从discuz的界面上登陆,先从ucenter(在discuz里登陆实际也是调用ucenter),检验用户密码,如果通过,再检验discuz中的用户密码。

这两个用户的职责是不同的:ucenter的uc_members主要是负责登陆,discuz的members表主要是负责记录用户在论坛里的发帖,积分,等行为的记录。

能否归途做我良人 2021-11-16 04:50:19

引用来自#5楼“阿笨哥”的帖子

用管理员在界面修改一下密码就OK

凯凯我们等你回来 2021-11-16 04:48:48

楼上已经很详细的阐述了原理,楼主应该没问题了

像你 2021-11-16 04:43:57

如果是解决单个用户登陆问题的话,用5楼说的方式就可以了!简单实用!

泛泛之交 2021-11-16 04:35:07

我在使用discuz nt的时候也遇到过这个问题,

首先是密码的加密问题,nt可以使用论坛自带的api来进行用户添加,该api主要是用来跟其他系统整合用的;

其次,在discuz nt的数据库中,跟用户关联的有2个表,dnt_user和dnt_userfields表,用户基本数据插入dnt_user表,扩展数据插入dnt_userfields表,如果仅仅将基本数据插入dnt_user,即使密码正确也登陆不了,必需将这2表都插入UID相同的数据才能登陆成功。

少女情怀诗 2021-11-16 04:34:30

用管理员在界面修改一下密码就OK

爱的故事 2021-11-16 04:29:19

2楼已经解释清楚了, 因为国内的网络生态环境,密码不是简单的md5加密就可以了,通常是要2次加密,第二次会需要一个额外的字符串salt, 这个salt在安装discuz时会要求输入。所以楼主简单的插入 username password, 那是肯定不能在前台登录的。 楼主应该在网上搜索一下先, 对discuz的加密及登录的讨论网上已经有很多。

奈何桥上唱咆哮 2021-11-16 03:37:37

discuz 现在密码都是2次加密的吧,后面还有salt的字段是做二次加密用的。

没仔细看过程序,不过形式类似应该是  对设定的密码进行32位md5后,字段再加上salt字段再加密了一次 。

另外你要注意有两个表  一个是members另外还有一个是uc_members

野心澎湃 2021-11-16 00:11:36

我想告诉你,要搞清楚这个问题,最好的办法就是先看看uc_client里说的一个用户添加的办法。

当然,你如果想在phpmyadmin这样的数据管理软件里添加用户,我想说说dz的用户登陆验证过程:

discuz6以后的所有版本,如d7.0-d7.2,虽然discuz里都有一个用户表members,但实际的登陆过程是建立在ucenter的基础上的,(如果你安装d7.0--,它会问你是不已经安装center,设定ucenter,否则是不能安装的)。

所以,ucenter里有一也有一个用户表,如果ucenter和discuz整合安装,就里cdb_uc_members这个表,这个表的用户数据就是discuz的反映。

它门有什么关系呢?这要从comsenz的产品结构说起,comsenz的所以产品都是建料在ucenter的,所有的用户数据都是ucenter管理的,如一个大型的站点:有bbs,社区,游戏应用,blog,supesite都就是comsenz的产品,它们为了统一登陆,所以就以ucenter为中心管理登接口,再同步到不同的应用。

discuz的用户数据是这样的:

cdb_members的密码:$password = md5('实际密码的明码');

ucenter的用户数据是这样:

cdb_uc_members的密码:

$salt = rand(100000, 999999);
$password = md5(md5('实际密码的明码'').$salt);

注:cdb_uc_members表里有个salt这个字段,一定要记录密码从discuz到ucenter加密里的salt,否则不能登陆。

discuz和ucenter用户名一一对应,它们的功能有不同。

先说一下注册的过程:在各个应用中(supesite,uchome,discuze)注册,先把用户名,密码,email记录cdb_members,再记录在cdb_uc_member这个表中。

如果你从discuz的界面上登陆,先从ucenter(在discuz里登陆实际也是调用ucenter),检验用户密码,如果通过,再检验discuz中的用户密码。

这两个用户的职责是不同的:ucenter的uc_members主要是负责登陆,discuz的members表主要是负责记录用户在论坛里的发帖,积分,等行为的记录。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文