首页 » 开源CMS » 织梦DedeCms » 正文

织梦DedeCMS后台验证码错误的原因及解决方法

织梦dedecms后台登陆时填入的验证码明明是正确却提示不正确,或者压根不显示出来,一般有以下几种原因:

1. 浏览器cookies问题。
2. 织梦dedecms5.7版本转移data目录引起的。
3. 程序内/data/session目录权限设置问题。
4. php.ini里gd库配置问题。
5. 织梦dedecms版本程序升级操作不正确造成验证码提示不正确。
6. 网站程序出错,重新上传安装。
7. 网速不行,换个时间,等网速快了再试。
8. 网站空间满了。

以上八种原因都有可能引起dede织梦后台登陆验证码错误或者不显示的原因,解决办法如下:

1、检查网站空间是否满了?
有些朋友遇到的验证码错误可能是因为空间满了,所以,如果你的网站一直很正常,也没被攻击过,没做过任何改动,遇到验证码错误的问题,可以先检查是否空间满了。
测试的方法是你可以随便上传FTP空间里一个文件,会有提示,你可以联系空间服务商。
如果是空间满了,就需要你登录服务器或ftp删除一些无用的文件,或者增加一下网站空间。
如果网站空间仍然剩余很多,验证码仍然显示不正确的话,那你就找找其他原因了(具体可查看马海祥博客《织梦(dedecms)后台登录验证码不显示或不正常的解决方法》的相关介绍)。

2、删除缓存文件
还有一种情况,可能是由于网站长期的使用,致使大量的缓存文件所致,对此,你可以登录服务器或用ftp进入你的dedecms程序空间,把data/session目录下,将除index.html以外文件全部删除就可以了。
然后,本地ie浏览器清除缓存,重新登录dedecms后台,再试试看。

3、转移data目录引起的
如果是5.7版本的转移data目录引起的,请改一下/include/vdimgck.php这个文件,这个文件里也调用了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;

 

改成:

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" onclick="this.src=this.src+'?'" />
</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文件夹转移过来,最后还原数据库。

发表评论