discuz在数据库里插入指定UID的用户,前台却无法登陆 什么原因..
这就是插入用户时的界面 是不是密码那个栏还要选择个函数 我以前是没有选择 用密码在前台登陆不行 进不去 !希望高手给解决一下....谢谢.......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这就是插入用户时的界面 是不是密码那个栏还要选择个函数 我以前是没有选择 用密码在前台登陆不行 进不去 !希望高手给解决一下....谢谢.......
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
引用来自#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表主要是负责记录用户在论坛里的发帖,积分,等行为的记录。
引用来自#5楼“阿笨哥”的帖子
用管理员在界面修改一下密码就OK
楼上已经很详细的阐述了原理,楼主应该没问题了
如果是解决单个用户登陆问题的话,用5楼说的方式就可以了!简单实用!
我在使用discuz nt的时候也遇到过这个问题,
首先是密码的加密问题,nt可以使用论坛自带的api来进行用户添加,该api主要是用来跟其他系统整合用的;
其次,在discuz nt的数据库中,跟用户关联的有2个表,dnt_user和dnt_userfields表,用户基本数据插入dnt_user表,扩展数据插入dnt_userfields表,如果仅仅将基本数据插入dnt_user,即使密码正确也登陆不了,必需将这2表都插入UID相同的数据才能登陆成功。
用管理员在界面修改一下密码就OK
2楼已经解释清楚了, 因为国内的网络生态环境,密码不是简单的md5加密就可以了,通常是要2次加密,第二次会需要一个额外的字符串salt, 这个salt在安装discuz时会要求输入。所以楼主简单的插入 username password, 那是肯定不能在前台登录的。 楼主应该在网上搜索一下先, 对discuz的加密及登录的讨论网上已经有很多。
discuz 现在密码都是2次加密的吧,后面还有salt的字段是做二次加密用的。
没仔细看过程序,不过形式类似应该是 对设定的密码进行32位md5后,字段再加上salt字段再加密了一次 。
另外你要注意有两个表 一个是members另外还有一个是uc_members
我想告诉你,要搞清楚这个问题,最好的办法就是先看看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表主要是负责记录用户在论坛里的发帖,积分,等行为的记录。