吾知网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5549|回复: 0
打印 上一主题 下一主题

织梦后台升级后验证码登录一直显示错误的解决方法

[复制链接]
跳转到指定楼层
楼主
发表于 2017-3-13 17:57:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天,给网站后台系统做了一下升级,可是升级后,后台一直不能登录成功,一直提示验证码不正确,就是登不进去,这个问题一直困扰我很久,试了很多方法都不行啊,在网上有些说什么V5.7的不好,很垃圾,过几天就好,我们做网站的不可能一直等着它好吧,这样就很被动了。

针对这种情况,我也在网上找了各种织梦(dedecms)后台登陆验证码错误或不显示解决的方法,常见的就是验证码输入明明正确但却提示不正确,或者压根不显示,说一下碰到这种情况的几种原因:

①、网站空间满了。

②、清除浏览器的cookies,重启浏览器。

③、织梦(dedecms)5.7版本转移data目录引起的。

④、程序内/data/session目录权限设置问题。

⑤、更好空间新的空间里php.ini里gd库配置问题。

⑥、织梦(dedecms)版本程序升级操作不正确造成验证码提示不正确。

⑦、网站程序出错,重新上传安装。

⑧、网速不行,换个时间,等网速快了再试。

好了,引起dede织梦后台登陆验证码错误或者不显示的原因找到了,那么现在我们来总结一下解决办法,我测试过的方法如下,提供给大家参考下:

1、检查网站空间是否满了?

有些朋友遇到的验证码错误可能是因为空间满了,所以,如果你的网站一直很正常,也没被攻击过,没做过任何改动,遇到验证码错误的问题,可以先检查是否空间满了。

测试的方法是你可以随便上传FTP空间里一个文件,会有提示,你可以联系空间服务商。

如果是空间满了,就需要你登录服务器或ftp删除一些无用的文件,或者增加一下网站空间。

如果网站空间仍然剩余很多,验证码仍然显示不正确的话,那你就找找其他原因了(具体可查看马海祥博客《织梦(dedecms)后台登录验证码不显示或不正常的解决方法》的相关介绍)。

2、删除缓存文件

还有一种情况,可能是由于网站长期的使用,致使大量的缓存文件所致,对此,你可以登录服务器或用ftp进入你的dedecms程序空间,把data/session目录下,将除index.html以外文件全部删除就可以了。

然后,本地ie浏览器清除缓存,重新登录dedecms后台,再试试看。

3、转移data目录引起的

如果是5.7版本的转移data目录引起的,请改一下/include/vdimgck.php这个文件,这个文件里也调用了DATA里的文件也可以改路径,把带有这个 /../data 改成你现在的路径(此种请查看马海祥博客《安全正确转移网站data目录文件的具体方法步骤》的相关介绍)。

4、session目录权限设置问题

如果你发现/data/session/文件保存不成功,原因可能是目录没有写权限。

对此,你就要看session是否有写入权限,如果没有的话,给"internet来宾账户"添加写入权限,Linux的话,目录权限设置为"777"。

5、服务器的php.ini配置问题

设置服务器的php.ini:打开php.ini文件找到

;session.save_path = "/tmp"

改写成:

session.cookie_path = /

把extension=php_gd2.dll;将他前面的分号去掉。

6、版本升级后的漏洞所致

对织梦(dedecms)后台升级之后,验证码可以显示,不管怎么登陆都是错误,在网上找了很久的攻略,发现都不能解决,最后,发现在我的\data文件夹下除了sessions文件夹外,还有一个sessions_8ab3842ff8的文件夹,而这个文件夹中照样记录着您的登陆信息。

唯一不同的是,sessions中的记录验证码会和后台登陆验证码同步,sessions_8ab3842ff8却不会记录验证码,那么我们就只要需要记录同步到sessions文件夹即可。

解决方法:

打开include文件夹下的common.inc.php文件,找到以下代码:

//Session保存路径
$enkey = substr(md5(substr($cfg_domain_cookie,0,5)),0,10);
$sessSavePath = DEDEDATA."/sessions_{$enkey}";
if ( !is_dir($sessSavePath) ) mkdir($sessSavePath);
if(is_writeable($sessSavePath) && is_readable($sessSavePath))
{
    session_save_path($sessSavePath);
}

$sessSavePath = DEDEDATA."/sessions_{$enkey}";

改成:

$sessSavePath = DEDEDATA."/sessions";

保存即可!

再登陆,就不会出现验证码不正确了!

7、直接去掉验证码

如果觉得这些方法实在太麻烦,也可以取消掉验证码,具体方法如下:

实现的方法一共分为两步来进行,首先,打开login.php找到:

if($validate=='' || $validate != $svali)

替换为:

if( false )

然后,在模板dede/templets/login.htm里去掉以下验证码的具体HTML代码:

<li><span>验证码:</span>
<input name="validate" type="text" id="vdcode” style="width:50px;text-transform:uppercase;" />
<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?点击更换" align="absmiddle" style="cursor:pointer" />
</li>

或者是在“验证码安全设置”里,说修改后的保存实际上是修改了data\safe\inc_safe_config.php这个文件,这是个配置文件。

比如:$safe_gdopen = '1,2,3,5,6'; 这个就是系统哪些地方开启验证码。与[验证码安全设置]界面是一对一的关系。

所以,如果当我们管理后台想关闭验证码(如果验证码无法正确输入,不支持GB库)的时候,只需要打开data\safe\inc_safe_config.php 将$safe_gdopen = '1,2,3,5,6'; 中的6删除即可,不必去进行繁琐的设置。

最后,如果以上方法均不适用的话,那么你就重新安装下对应版本的程序,然后将您的css及图片文件,模板文件,upload文件夹转移过来,最后还原数据库。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|吾知网 ( 粤ICP备13013563号-1 )

GMT+8, 2024-5-4 03:21 , Processed in 1.093750 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表