ZenCart/JoyCart搬家引起后台无法登陆故障修复方法

今天在给一个客户迁移网站时,遇到了后台无法登陆的故障。网站是JoyCart 2.0系统,该系统是基于ZenCart构建的,通常,搬家只需要修改

<website>/includes/configure.php

文件下

DIR_FS_CATALOG DIR_FS_SQL_CACHE

这两个参数,以及数据库配置:

define(‘DB_TYPE’, ‘mysql’); define(‘DB_CHARSET’, ‘utf8’); define(‘DB_PREFIX’, ”); define(‘DB_SERVER’, ‘localhost’); define(‘DB_SERVER_USERNAME’, ‘db_username’); define(‘DB_SERVER_PASSWORD’, ‘db_password’); define(‘DB_DATABASE’, ‘db_name’);

最后还要注意,要替换掉

<website>/<admin>/includes/configure.php

文件的上述配置(注意,configure.php配置文件最后要赋予只读权限,即644或444)。通常,替换完,JoyCart就可以搬家完成了,可是,这次没有这么顺利,搬家完成后,用密码访问后台,没有任何提示,还是返回login.php页面,随后我又尝试用邮件取回密码,虽然可以修改,但依然无法进入后台,提示“登录时出现安全错误”。 在搜索了一大堆资料,排查了如下问题: 1、数据库configration表中SESSION_PATH(事实上,JoyCart中这个表叫SESSION_DICTIONARY…..)问题。无效。 2、zencart新模板规范中,加入

<?php echo zen_draw_hidden_field(‘securityToken’, $_SESSION[‘securityToken’]); ?>

无效。 3、配置display_error为1。无效 随后我开始想,是不是ZenCart的密码验证机制问题导致的这种错误,因为我注意到,数据库中不仅有当前密码列admin_pass1,还有两列分别为prev_pass1和prev_pass2,也就是说,它的密码验证算法很可能不止单纯考当前密码列进行判断。

解决问题的办法来了,我直接添加了一个管理员帐号:

INSERT INTO admin (admin_name, admin_email, admin_pass, admin_profile) VALUES (‘admin’, ‘admin@localhost’, ‘351683ea4e19efe34874b501fdbf9792:9b’, 1);

然后使用用户名:admin 密码:admin登陆,问题解决!如果你以前的管理员用户名也是admin,那么需要替换VALUES之后的语句,把admin换成其他名字。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区