在用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重新安装后,还原数据库后,登陆不了解决办法!的更多相关文章

  1. redhat图形界面启动后出现桌面但是没有登录界面解决办法

    redhat图形界面启动后出现桌面但是没有登录界面解决办法 2014年07月11日 10:50:10 阅读数:7931 redhat Linux一直用着好好地,今天打开只有图像界面背景,没有出现登陆界 ...

  2. 关于hasNextInt判断后无限循环输出else项的解决办法

    话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public sta ...

  3. WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转)

    WCF服务运行一段时间后客户端无法连接WCF服务的解决办法 (转) Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信 ...

  4. windows7开机后,罗技k380无法自动连接解决办法

    问题描述: windows7开机后,罗技k380无法自动连接,必须删除设备后重新发现才能正常连接. 解决办法: 是因为笔记本电脑的蓝牙设置问题.按如下设置即可解决. [Bluetooth设置]-[允许 ...

  5. php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法

    php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法 解决办法, 通过 insert 命令的方式进行创建. 创建数据库用户: $sql= "insert ...

  6. Data Base sqlServer sa用户登陆失败的解决办法

    sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:

  7. sqlServer sa用户登陆失败的解决办法

    sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:

  8. QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法

    每隔一段时间,我的QQ就无法登陆,提示:QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法 点击了解详情发现里面的解决办法根本不起作用,网上 说的各种解决办法都不起作用,解决办法如下 1. ...

  9. sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法

    将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法 ...

随机推荐

  1. 随机数Math.random()公式

    1. 0-x之间的随机数: Math.round(Math.random()*x); 2. x至y之间的随机数 Math.round(Math.random()*(y-x)+x); 3. 1-x之间的 ...

  2. css样式DEMO

    <!-- 导入框 --> <div id="importWin" class="easyui-window" title="服务封装 ...

  3. python文件夹批处理操作

    如图所示,有一个test文件夹,里面有3个子文件夹,每个子文件夹中有若干图片文件    #场景1 读取一个文件夹中所有文件,存入到一个list表中 #coding:utf-8 from __futur ...

  4. 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行

    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: 任意Linux OS - 支持开发和部署.适合演示应用程序. Windows OS - 仅支持开发. Mac OS - 仅支持 ...

  5. zabbix-agent 自动注册

    1. 概述 上一篇内容<zabbix自动发现配置>,大概内容是zabbix server去扫描一个网段,把在线的主机添加到Host列表中.我们本篇内容与上篇相反,这次是Active age ...

  6. VC++ 6.0开发套件(自己收藏!)

    安装镜像ISO                     VC++ 6.0_SP6_Win7企业版(中英文集成).iso MSDN安装镜像ISO                 MSDN_Oct_200 ...

  7. mysql数据库binary log中的事件到底是什么?

    需求描述: 最近看mysql备份恢复的时候,基于时间点恢复,提到了binary log中存的是"事件" 那么到底什么是事件呢 概念解释: binary log中存的是事件(even ...

  8. Java 应用程序设计规范

    1.能在程序中取的产生就从程序中取.不用客户输入(减少客户输入). 比如客户号 信息 等. 2.如果有参数输入尽可能减少参数输入的个数(4个->0个): 3.验证入参(尽可能的实现输入参数的正确 ...

  9. [dubbo] dubbo 基础使用

    Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候 ...

  10. LeetCode——Binary Tree Preorder Traversal

    Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...