onethink重新安装后,还原数据库后,登陆不了解决办法!
在用onethink开发的时候,为了防止修改出错,我会在开发下一个功能的对上一个功能代码整体进行备份,如果出错就返回上一个版本再次修改。
但是会发现一个问题,如果如果返回到上一个版本,重新安装完成之后,进行数据还原,还原之后,发现再次用之前的账号密码登陆就不能登陆。
产生问题原因:
在第一次安装的时候,onethink会生成一个 “加密KEY” 用来加密密码的,加密完成保存到数据库,这个就是登陆账号的密码;
但是在第二次安装过程中,onethink同样会生成一个 “加密KEY” 用来加密密码, 而且两次的 "加密KEY" 是不一样的,这也就导致了:两次安装使用同样的密码,但是保存到数据库里的是不一样的。
如果还原了数据库,那么保存的密码是之前安装数据库保存的密码,和现在安装的版本保存的密码,由于两次安装产生的不同 ”加密KEY“ 导致,即使是密码相同,加密过后都是不一样的,从而再次验证密码的时候,由于 解密规则不一样,从而导致登陆不上去;
具体解决方法在文章结尾说明:
先看下这些方法在哪里:
首先是:验证用户名和密码的方法:

其次是系统MD5加密的方法:

最后是”加密KEY“的位置:

解决方法有三种:
第一种:(还原数据库之前使用):
安装onethink完成后,在还原数据库之前,找到当前安装的数据库,找到onethink_ucenter_member表,找到对应账号和密码,复制保存下来,在还原数据库之后,把这个表对应的账号密码进行更换即可;
第二种:(还原数据库之后使用):
安装onethink之后,还原了数据库,那么数据库保存的账号密码信息是之前的,所以只要找到之前的onethink,找到 ”加密KEY“ ,然后替换新安装的 ”加密KEY“,即可;
第三种:(还原数据库之后使用):
安装onethink之后,还原了数据库,如果之前的安装的onethink找不到 ”加密KEY“ 那么可以自己写一个加密方法,通过已有的 ”加密KEY“ 重新想一个密码,进行加密,加密过后保存到数据库里,就可以了。
/**
* 系统非常规MD5加密方法
* @param string $str 要加密的字符串
* @return string
*/
function think_ucenter_md5($str, $key = 'ThinkUCenter'){
return '' === $str ? '' : md5(sha1($str) . $key);
}
加密:
think_ucenter_md5($password_in, UC_AUTH_KEY)
得到返回值,保存到数据库就行;
还有一种安装方法:直接onethink的文件拷下来:站点程序和数据库拷下来:
安装到本地,修改数据库链接配置。如果还是登录不了后台,还需要修改:Application / User / Conf / Config.php文件的:
define('UC_APP_ID', 1); //应用ID
define('UC_API_TYPE', 'Model'); //可选值 Model / Service
define('UC_AUTH_KEY', '[FU)grX,lJj8E-TA9z:71."H^&V#uS/c`Zk>W%@*'); //加密KEY
//define('UC_DB_DSN', 'mysql://yicjx:yicjx913@127.0.0.1:3306/yicjx'); // 数据库连接,使用Model方式调用API必须配置此项
define('UC_DB_DSN', 'mysql://root:root@127.0.0.1:3306/ycfyzcom'); // 数据库连接,使用Model方式调用API必须配置此项
define('UC_TABLE_PREFIX', 'yicheng_'); // 数据表前缀,使用Model方式调用API必须配置此项
onethink重新安装后,还原数据库后,登陆不了解决办法!的更多相关文章
- redhat图形界面启动后出现桌面但是没有登录界面解决办法
redhat图形界面启动后出现桌面但是没有登录界面解决办法 2014年07月11日 10:50:10 阅读数:7931 redhat Linux一直用着好好地,今天打开只有图像界面背景,没有出现登陆界 ...
- 关于hasNextInt判断后无限循环输出else项的解决办法
话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public sta ...
- WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)
WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...
- windows7开机后,罗技k380无法自动连接解决办法
问题描述: windows7开机后,罗技k380无法自动连接,必须删除设备后重新发现才能正常连接. 解决办法: 是因为笔记本电脑的蓝牙设置问题.按如下设置即可解决. [Bluetooth设置]-[允许 ...
- php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法
php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法 解决办法, 通过 insert 命令的方式进行创建. 创建数据库用户: $sql= "insert ...
- Data Base sqlServer sa用户登陆失败的解决办法
sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:
- sqlServer sa用户登陆失败的解决办法
sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:
- QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法
每隔一段时间,我的QQ就无法登陆,提示:QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法 点击了解详情发现里面的解决办法根本不起作用,网上 说的各种解决办法都不起作用,解决办法如下 1. ...
- sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法
将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法 ...
随机推荐
- centos 部署 SparkR
---恢复内容开始--- 环境配置—— 操作系统:CentOS 6.5 JDK版本:1.7.0_67 Hadoop集群版本:CDH 5.3.0 安装过程—— 1.(1)安装R yum install ...
- 关于Java获取文件路径的几种方法
第一种:File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...
- MySQL巧用sum,case...when...优化统计查询
最近在做项目,涉及到开发统计报表相关的任务,由于数据量相对较多,之前写的查询语句查询五十万条数据大概需要十秒左右的样子,后来经过老大的指点利用sum,case...when...重写SQL性能一下子提 ...
- e665. 在图像中过滤三元色
This example demonstrates how to create a filter that can modify any of the RGB pixel values in an i ...
- iOS: [UITableView reloadData]
在 iTouch4 或者相差不多的 iPhone 上,不建议在 UIViewController 的 viewWillAppear 的方法中放置 UITableView 的 reloadData 方法 ...
- kafka学习之-配置详解
# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreement ...
- 重载 CreateParams 方法[1]: 从一个例子开始(取消窗口最大化、最小化按钮的三种方法)
方法1: 使用 TForm 的 BorderIcons 属性 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, C ...
- MathType中常遇到的几个问题
每次打开别人的论文,发现公式文字都排版得非常整齐,公式也编辑得非常漂亮,看起来就非常得赏心悦目.再打开自己的论文,一片凌乱,自己不想都再看,公式编辑得乱七八糟,符号不够规范,大小不够统一,你自己都觉得 ...
- github前端资源
摘要: 本文将分享我在github上常用的一些插件,可能在开发中你会用到它,希望能够帮助你! 前端技术总结 url : https://github.com/JacksonTian/fks 简述: ...
- Linux select 机制深入分析
Linux select 机制深入分析 作为IO复用的实现方式.select是提高了抽象和batch处理的级别,不是传统方式那样堵塞在真正IO读写的系统调用上.而是堵塞在sele ...