织梦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
热门阅读