经常有人忘记管理员密码的,当然OC有默认找回密码功能。但是又有一些客户还没来得及配置账户或者是干脆邮件系统出故障。那么怎么办呢?
一:替换域名
前提一:同一机器上;
前提二:同数据库账户;
前提三:OC版本相同或者接近。
其他:是否有其他前提未知,欢迎测试。
比如,你知道 http://localhost/opencartA 的后台账户密码,不记得 http://localhost/opencartB 的后台账户密码,那么此时登陆前者,然后修改opencartA为opencartB即可登陆admin后台。
二:修改数据库
前提一:opencart版本相同(部分相近也可以);
前提二:需要一个参考网站。
利用phpmyadmin或者其他数据库连接工具,登陆知道账户密码的OC数据库,查看“oc_user”数据表,把ID是1的管理员账户的 password 字段和 salt 字段,复制并且替换到忘记密码的网站数据库对应的地方。
三:利用一个文件
我们可以看看,opencart改密码的地方是“/admin/index.php?route=user/user/edit”,
从这里推断处理层文件在“admin/controller/user/user.php”,
在从处理层查看到一段代码:
- $this->load->model('user/user');
由此判断model层对应文件是“admin/model/user/user.php”
找到文件,看到这样一段代码:
我们从上面的代码看出了密码更新的代码也就是第13行这里。可以看出salt是怎么产生的,password的值又是怎么产生的,我们把这段代码简化就是:
- UPDATE `" . DB_PREFIX . "user` SET salt = '" . $salt . "', password = '" . sha1($salt . sha1($salt . sha1($password))) . "' WHERE user_id = '" . (int)$user_id . "'
然后,我们再赋值三个值,就可以达到要的效果了:
- $password = '密码';
- $salt = token(9);
- $user_id = '1';
于是这个方法就这么完成了。那么我们写一个PHP文件,写上这样的一个简单的代码,放网上运行即可啦。
PS:其实,本来有好多教程想写的,由于在组织其他开发,拖啊拖。这一篇实在是不想拖了。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助