• 让安心手环更“智慧” 2019-06-25
  • 祈福活动上,马英九用喇叭大喊“两岸和平” 2019-06-25
  • 【理上网来辉煌十九大】美国学者关注十九大报告:中国将形成新的共识继续推进改革 2019-06-20
  • 韩媒:韩朝将军级军事会谈时隔近11年在板门店顺利重启 2019-06-20
  • 任红梅:让十九大精神进社区,入民心 2019-06-17
  • 湖北日报传媒集团多媒体数字报 2019-06-14
  • 要像习近平那样感恩父母 2019-06-14
  • 学诚法师:心中没有是非 不等于是非不分 2019-06-11
  • “后高考”生活尤需有度 警惕“高考后综合征” 2019-06-06
  • 三只树懒漂洋过海亮相杭州 看着都困 2019-06-06
  • “跌倒”与“重新站起来” 2019-06-01
  • 女子街头遭遇男子持刀抢劫 搏击教练一分钟夺刀 2019-05-29
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-05-29
  • 免费与收费混搭总会拖垮社会主义经济(原创首发) 2019-05-15
  • 徐悲鸿中学“大美徐中 进步之师”——华龙网 2019-05-14
  • 织梦dedecms使用Mysql8.0无法登录后台的解决办法

    2019-05-04 织梦安装使用
    • 文章介绍
    今天一个客户联系我们的技术,反馈说安装之后,但是登录后台,一直提示用户名不存在。通常这个原因有两个(1、数据库链接信息不对  2、数据库表中的用户名不是默认的admin,被修改过)经过多发查证,这两个原因都被排除了,最后发现原来这位客户用的是mysql8.0的数据库。

    因mysql 8.0新制定的语句表名限制条件被dede自带的后台用户登录检查语句指定表别名所违背而引起的bug。如何解决呢?
     
    找到dedecms的文件目录, 在include子目录下找到userlogin.class.php, 249行左右看到如下语句:
     
            //只允许用户名和密码用0-9,a-z,A-Z,'@','_','.','-'这些字符
            $this->userName = preg_replace("/[^[email protected]!\.-]/", '', $username);
            $this->userPwd = preg_replace("/[^[email protected]!\.-]/", '', $userpwd);
            $pwd = substr(md5($this->userPwd), 5, 20);
    
            $dsql->SetQuery("SELECT admin.*,atype.purviews FROM `dede_admin` admin LEFT JOIN `dede_admintype` atype ON atype.rank=admin.usertype WHERE admin.userid LIKE '".$this->userName."' LIMIT 0,1");
            $dsql->Execute();
            $row = $dsql->GetObject();
     
    其中SetQuery就是设定将要执行的sql语句, 下一行Execute()来执行这个设定好语句,我们从语句里面改。改成如下:
     
            //只允许用户名和密码用0-9,a-z,A-Z,'@','_','.','-'这些字符
            $this->userName = preg_replace("/[^[email protected]!\.-]/", '', $username);
            $this->userPwd = preg_replace("/[^[email protected]!\.-]/", '', $userpwd);
            $pwd = substr(md5($this->userPwd), 5, 20);
    
            $dsql->SetQuery("SELECT admi.*,atype.purviews FROM `dede_admin` admi LEFT JOIN `dede_admintype` atype ON atype.rank=admi.usertype WHERE admi.userid LIKE '".$this->userName."' LIMIT 0,1");
            $dsql->Execute();
            $row = $dsql->GetObject();
     
    这样一来,表的别名从admin删去一个n被改成admi, 就可以正常登录后台了。

    上一篇:织梦上传本地视频后 文件管理器中不显示解决办法

    下一篇:织梦cms手机站首页不更新的解决办法

    专业的织梦模板定制下载站,在线购买后即可下载!

    商业源码

    跟版网模板,累计帮助5000+客户企业成功建站,为草根创业提供助力!

    立刻开启你的建站之旅
    QQ在线客服

    服务热线

    织梦建站咨询
  • 让安心手环更“智慧” 2019-06-25
  • 祈福活动上,马英九用喇叭大喊“两岸和平” 2019-06-25
  • 【理上网来辉煌十九大】美国学者关注十九大报告:中国将形成新的共识继续推进改革 2019-06-20
  • 韩媒:韩朝将军级军事会谈时隔近11年在板门店顺利重启 2019-06-20
  • 任红梅:让十九大精神进社区,入民心 2019-06-17
  • 湖北日报传媒集团多媒体数字报 2019-06-14
  • 要像习近平那样感恩父母 2019-06-14
  • 学诚法师:心中没有是非 不等于是非不分 2019-06-11
  • “后高考”生活尤需有度 警惕“高考后综合征” 2019-06-06
  • 三只树懒漂洋过海亮相杭州 看着都困 2019-06-06
  • “跌倒”与“重新站起来” 2019-06-01
  • 女子街头遭遇男子持刀抢劫 搏击教练一分钟夺刀 2019-05-29
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-05-29
  • 免费与收费混搭总会拖垮社会主义经济(原创首发) 2019-05-15
  • 徐悲鸿中学“大美徐中 进步之师”——华龙网 2019-05-14
  • 世青赛2019小组赛规则 江苏十一选五视频 笨重超脱生肖 360彩票合买怎么算 百家乐国际赌场娱乐网规则 好运彩3直播 泳坛夺金任二遗漏 极速十一选五网站 极速快3官方计划 濠博线上娱乐 福建体彩22选5今天开奖 陕西快乐10分钟百宝彩走势图下载 亿元大奖排名 湖北11选5遗漏值 zcw中国足彩网