• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦dedecms不显示验证码,完美解决方法
    POST TIME:2021-05-23 01:21

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

    1,不显示背景不显示字符

    打开www/include/vdimgck.php

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

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

    在它上面加入下面代码

    ob_end_clean();

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

     

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

    打开www/include/vdimgck.php

    找到下面代码,大约126行左右

    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);即可解决。

     

    3,文件丢失

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

     

    解决方法:

    1 拷贝一个进去

    2找到代码

    'word_type'  => (int)$safe_codetype,   // 1:数字  2:英文 3:单词

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

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!