"景先生毕设|www.jxszl.com

织梦dedecms不显示验证码,完美解决方法

2022-10-29 16:27编辑: www.jxszl.com景先生毕设
织梦dedecms不显示验证码,完美解决方法

I.,不显示背景不显示字符

打开www/include/vdimgck.php

找到下面代码,大约IIV行处

if(!is_dir($sessSavePath))mkdir($ses

 更多精彩就在: 51免费论文网|www.jxszl.com 
sSavePath);

在它上面加入下面代码

ob_end_clean();

用来清空(擦除)缓冲区并关闭输出缓冲



II,只显示背景不显示字符

打开www/include/vdimgck.php

找到下面代码,大约I.IIVI行左右

for($i=0;$i<$rndcodelen;$i++)
{
$bc=mt_rand(0,I.);
$rndstring[$i]=strtoupper($rndstring[$i]);
$c_fontColor=$fontColor[mt_rand(0,IV)];
$y_pos=$i==0?IV:$i*($font_size+II);
$c=mt_rand(0,I.V);
@imagettftext($im,$font_size,$c,$y_pos,I.IX,$c_fontColor,$font_file,$rndstring[$i]);
$lastc=$rndstring[$i];
}

原因是Imagettftext()函数没有成功的执行,所以验证码只显示背景不显示字母,原因是字体文件路径错误.



解决方法

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

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

$font_file=str_replace("\","/",$font_file);

即把字体文件路径中反斜杠替换成斜杠,反斜杠有转译字符的功能,$font_file路径大体为盘符:appservwww系统错误的把反斜杠当作转义用了,导致$font_file不是I.个路径,所以Imagettftext()函数总是返回错误.

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



III,文件丢失

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



解决方法:

I.拷贝I.个进去

II找到代码

word_type=>(int)$safe_codetype,//I.:数字II:英文III:单词

换成word_type=>I.,(或II)既验证码为数字或英文


原文链接:http://www.jxszl.com/biancheng/dedecms/75056.html