网站地图    收藏   

主页 > 后端 > php资料库 >

Drupal7 忘记密码解决办法_自学php网

来源:自学PHP网    时间:2015-03-02 17:50 作者: 阅读:

[导读] 忘记密码这事情是在所难免的,生活中总有那么多的密码要你记,忘了想办法找回来来便是,不要怪自己没记性了,呵呵,我这么安慰自己的。 在Drupal7忘记管理密码这事虽然我还没有发...

忘记密码这事情是在所难免的,生活中总有那么多的密码要你记,忘了想办法找回来来便是,不要怪自己没记性了,呵呵,我这么安慰自己的。

在Drupal7忘记管理密码这事虽然我还没有发生,但是不保证以后不会发生,发生了怎么办呢?

办法一:选择邮件找回。

点击登录下面的忘记密码,系统会发邮件到你注册的帐号,点击链接激活。这也是现在很普通的一种方法。

方法二:替换密码。

在Drupal 的数据库里有张users表,里面保存了用户的一些基本信息,这里就有密码,这里的密码都是加密的方式保存的。那是不是只是把已知的一个加密后的密码替换到时面就行了呢? 比如 密码为admin ,对应的加密后的字符串是$S$DsDoW7i0xsaf7uH.672g4ccsEX0hzq3q1W/UOEmff5v.fRbXRuKr,现在我们假设用户名为teacher 的用户忘记了密码,我们把它的密码替换上面的字符串登录,会成功吗?答案是NO!(Drupal6 里似乎可以,没试过)

这是因为Druapl7里的密码加密是经过一些特别处理,简单说对数据库里的存储的加密密码和用户名是绑定的。举例来说:

turen.me-20131203154026

上面的名为 admin 和 ad 的密码都是admin ,但是里面的字符串是完全不同的。

所以替换的原则是保持用户名和密码的统一,用户名和密码一起换掉,如果要保持原用户名那你要先知道这个用户名所对应的一个密码。如果你的用户名是admin ,那这里可以把密码替换为 $S$DsDoW7i0xsaf7uH.672g4ccsEX0hzq3q1W/UOEmff5v.fRbXRuKr 对应的密码是admin 。

方法三:高级玩法-让注册用户变成管理员

虽然忘记了管理密码无法登录,但是应该有注册用户啊,只要把普通用户变成管理员,一切问题就解决了,具体怎么做呢?

第一步,用PhpMyadmin 或者Sqlyog之类的管理工具连接数据库(如果你命令好的话也OK)。

第二步,在users里找到注册的用户,把它的status 改成 1.表示用户可用,并记住它的id

第三步,在users_roles 里增加一行,uid 为 注册用户的id,rid 为 3 (表示管理员)

再用更改后的用户登录,权限已经是administrator了。

turen.me-20131203155907

role 表数据

turen.me20131203160318

users_roles表数据,第二行为新增的数据,6 是teacher 对应的id

turen.me-2013-12-03

teacher登录后界面

方法一简单,但是如果Drupal没用配置邮件服务器的话,这样的方法就不行了;方法二和方法三适用于对数据库有简单了解的人,其中方法二是很通用的方法,对很多系统都能进行这样的密码替换,而且很多系统并没有把密码和用户名关联,所以这样的方法就很容易操作了;方法三多了几步操作,对于其它系统来说原理还是一样的,只是要简单分析下系统的数据库结构而已!

转载地址:http://www.turen.me/archives/445

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论