织梦dedecms|织梦dedecms后台验证码错误问题集合及解决方法

更新时间:2019-12-17    来源:dedecms教程    手机版     字体:

【www.bbyears.com--dedecms教程】

织梦dedecms后台验证码持续错误问题

相信很多用户,在织梦后台登录的时候,会遇到验证码无法显示或者持续错误等等的问题,那么这个问题到底应该如何来解决呢。这里有几个小技巧和原因。

(1)空间已满

第一个原因相信一般都是很难发生的,那就是您的主机空间是否已经满了,这个是基本的导致这个问题的罪魁祸首。

(2)清除缓存

就像浏览器一样,长久的访问一个网站,浏览器会自动将此网站识别为经常访问的网站而存储在缓存里,这样的话,所导致的就是您输入再多次的验证码得到的结果都是错误的。那么,该如何来进行缓存的清理呢?很简单,进入您的主机空间或者是FTP管理,data/session目录下,除了index.html首页文件以外,其他的文件都全部删除,当然,浏览器缓存肯定是要首先清理的。

(3)修改配置参数

data/safe/inc_safe_config.php打开头一行,$safe_gdopen = ‘1,2,3,4,5,6’; 修改为
$safe_gdopen = ‘1,2,3,4,5’; 去掉6,即关闭后台验证码选项。(这是个一劳永逸的方法,代表您的验证码从此都没有作用了。)

(4)修改PHP版本

这里的修改版本是指的降版本,不是升版本,具体如何修改呢,这个会因为各个空间上的控制面板不同而不同,这里,我就以主机91的cpanel控制面板来作一个示范.

首先点击PHP版本点击。
attachment


然后选择版本,这里要注意,因为织梦的版本是在持续更新中,所以造成的结果是旧版本的反而更加的稳定,所以这里才会采取降版本的方式来解决此项问题,新版本的php与dede通常都有些设置不兼容。

attachment1


(5)修改文件权限

这里还有一种解决方法,就是修改session文件的文件夹权限,具体修改方式如下。
attachment2

点击Perms, 然后将权限修改为777. 就可以了。




织梦后台登陆验证码错误的解决方法

(1)检查虚拟主机的空间是否足够.(不可行,因为我的虚拟主机没有问题)。

(2)可能是由于缓存的原因造成后台验证码错误无法登陆。使用用ftp把data/session目录下除index.htm外的其它session文件都删除,然后本地ie浏览器清除缓存。(不可行)

(3)data/safe/inc_safe_config.php打开头一行,$safe_gdopen = '1,2,3,4,5,6'; 修改为
$safe_gdopen = '1,2,3,4,5'; 去掉6,即关闭后台验证码选项。(可行,验证码不起作用了,心里不舒服)。

(4)dede 系统重装,(不可行)

(5)系统备份恢复(不可行)

(6)数据库恢复(不可行)

(7)网上说的修改common.func.php文件(不可行)

(8)修改php.ini中的 sessions.cookie_path (不可行,空间商不让修改);

(9)按照(3)登陆后,在系统――验证安全设置――开启系统验证码,
去掉后台登陆以及其他如会员登陆,会员注册等,(可行,跟(3)作用一样,验证码不起作用,像自己身上长了一个疮,盖了一块布,不让别人看到一样,心里难受)

(10)data/session 权限,修改为777(不可行)

(11)降低空间商(godaddy)php 版本,由5.4.23降到5.2.17
(可行),问题彻底解决,估计最近空间商更新了系统,新版本的php与dede有些设置不兼容。





织梦Dedecms后台登录验证码不显示或一直提示错误

Dede后台验证码不显示或不正常分三种情况,下面来逐一分析


Dede后台验证码不显示情况一


Dede后台验证码不显示情况二


Dede后台验证码不显示情况三


通用解决方案―取消后台验证码功能

因为没有验证码 不能进后台 所以修改php文件源代码:

方法一:

打开dede/login.php 找到如下代码

if(($validate==” || $validate != $svali) && preg_match(“/6/”,$safe_gdopen)){

ResetVdValue();

ShowMsg(‘验证码不正确!’,’login.php’,0,1000);

exit;

}

第一行替换为   if(false){

好 问题解决 不输验证码后台直接进去

方法二

打开data/safe/inc.safe.config.php

把代码$safe_gdopen = ‘1,2,3,4,5,6,7’; 中的6,删除即可

Dede后台验证码不显示情况一分析

验证码需要GD库 请检查你的环境是否开启GD库
 

Dede后台验证码不显示情况二分析

验证码只显示背景 不显示字母

打开验证码生成文件 Include/vdimgck.php

找到

for($i=0;$i<$rndcodelen;$i++)

{

$bc = mt_rand(0, 1);

$rndstring[$i] = strtoupper($rndstring[$i]);

$c_fontColor = $fontColor[mt_rand(0,4)];

$y_pos = $i==0 ? 4 : $i*($font_size+2);

$c = mt_rand(0, 15);

@imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]);

$lastc = $rndstring[$i];

}

Imagettftext()函数没有成功的执行导致了验证码只显示背景 不显示字母

具体原因为 字体文件路径不对.解决方法

1确认include/data/fonts/ 里面存在字体文件  默认为ggbi.ttf

2在for($i=0;$i<$rndcodelen;$i++) 上一行 加上如下代码:

$font_file= str_replace(“\\”,”/”,$font_file);

即把字体文件路径中反斜杠替换成斜杠 因为我们知道反斜杠有转译字符的功能,

$font_file 路经大体为 盘符:\appserv\www 系统错误的把反斜杠 当作转义用了 导致$font_file也就不是一个路径了 所以Imagettftext()函数总是返回错误

加上$font_file= str_replace(“\\”,”/”,$font_file);即可解决

Dede后台验证码不显示情况三分析

Include/data/words/words.txt 文件不存在

解决方案1 拷贝一个进去

解决方案2


找到代码    ‘word_type’  => (int)$safe_codetype,   // 1:数字  2:英文   3:单词

换成’word_type’  =>1  (或2) 既验证码为数字或英文

 
Dede后台验证码不显示 全部情况解决 。

另外如果登录后台验证码显示,但是输入正确的验证码总是提示错误,那么100%的肯定,你的空间满了。建议到空间控制面板那里查看下空间剩余容量!

本文来源:http://www.bbyears.com/wangyezhizuo/82868.html

热门标签

更多>>

本类排行