当前位置:首页 » 建站技巧 » 正文

织梦 dedecms 5.7 中文验证码下载

16 人参与  2021年01月27日 05:53  分类 : 建站技巧  评论
帮客户用织梦5.7做了一个中国林果网,后来有机器注册垃圾会员,尝试了很多种办法防止无效后,就从网上找了个中文验证码,运行时不对,我作了修改了后可以运行,垃圾会员也明显的少了些,现在分享出来。

把文件vdimgck.PHP和simhei.ttf(字体文件)放在/下,vdimgck.php文件源码如下:

 代码如下  

<?php
/**
 * 验证图片
 * 在网上下的,经过阿亮修改
 * 834114969@qq.com
 * http://liuzhiliang.com/
 */
require_once(dirname(__FILE__)."/common.inc.php");
//Session保存路径
$sessSavePath = DEDEDATA."/sessions/";

if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); }
if(!empty($cfg_domain_cookie)) session_set_cookie_params(0,'/',$cfg_domain_cookie);

session_start();

//获取随机字符
$rndstring = '';
//$ch_h = chr(($num,0,2)+160);
//    $ch_l = chr(substr($num,2,2)+160);
function c2ch($num){
    $ch_h = chr(substr($num,0,2)+160);
    $ch_l = chr(substr($num,2,2)+160);
    return $ch_h.$ch_l;
}
function num_rand(){
          mt_srand((double)microtime() * 1000000);
          $d= mt_rand(16,36);
          $n= mt_rand(1,19);
          return c2ch($d*100+$n);
}

for($i=0; $i<4; $i++) $rndstring .= gb2utf8(num_rand());
//如果支持GD,则绘图
if(function_exists("imagecreate"))
{
    //Firefox部份情况会多次请求的问题,5秒内刷新页面将不改变session
    $ntime = time();
    if(empty($_SESSION['securimage_code_value_last']) || empty($_SESSION['securimage_code_value']) || ($ntime - $_SESSION['securimage_code_value_last'] > 1))
    {
        $_SESSION['securimage_code_value'] = strtolower($rndstring);
        $_SESSION['securimage_code_value_last'] = $ntime;
    }
    $rndstring = $_SESSION['securimage_code_value'];
    //创建图片,并设置背景色
    $x_size=80;
    $y_size=25;
    $font='simhei.ttf';
    $im=imagecreate($x_size,$y_size);
    $background_color = imagecolorallocate ($im, 255, 255, 255);

    // 随机颜色
    $fontColor[]  = imagecolorallocate($im, 0x15, 0x15, 0x15);
    $fontColor[]  = imagecolorallocate($im, 0x95, 0x1e, 0x04);
    $fontColor[]  = imagecolorallocate($im, 0x93, 0x14, 0xa9);
    $fontColor[]  = imagecolorallocate($im, 0x12, 0x81, 0x0a);
    $fontColor[]  = imagecolorallocate($im, 0x06, 0x3a, 0xd5);
    $c_fontColor = $fontColor[mt_rand(0,4)];

    imagettftext($im,15,mt_rand(-8,8),6,mt_rand(19,22),$c_fontColor,$font,substr($rndstring,0,3));
    imagettftext($im,15,mt_rand(-8,8),37,20,$c_fontColor,$font,substr($rndstring,6,3));
    imagettftext($im,mt_rand(15,17),mt_rand(-8,8),22,20,$c_fontColor,$font,substr($rndstring,3,3));
    imagettftext($im,mt_rand(15,17),mt_rand(-8,8),54,mt_rand(19,22),$c_fontColor,$font,substr($rndstring,9,3));
    imagerectangle($im, 0, 0, $x_size - 1, $y_size - 1,$black);

    header("Pragma:no-cachern");
    header("Cache-Control:no-cachern");
    header("Expires:0rn");

    //输出特定类型的图片格式,优先级为 gif -> jpg ->png
    if(function_exists("imagejpeg"))
    {
        header("content-type:image/jpegrn");
        imagejpeg($im);
    }
    else
    {
        header("content-type:image/pngrn");
        imagepng($im);
    }
    ImageDestroy($im);
    exit();
}
else
{
    //不支持GD,只输出字母 ABCD
    $_SESSION['securimage_code_value'] = "abcd";
    $_SESSION['securimage_code_value_last'] = '';
    header("content-type:image/jpegrn");
    header("Pragma:no-cachern");
    header("Cache-Control:no-cachern");
    header("Expires:0rn");
    $fp = ("data/vdcode.jpg","r");
    echo fread($fp,filesize("data/vdcode.jpg"));
    fclose($fp);
    exit();
}

?>


来源:壹世博客(微信/QQ号:2336957694),转载请保留出处和链接!

本文链接:https://www.ym-ym.com/405.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

SEO北京SEO百度百度排名黑帽seoSEO是什么SEO案例百度算法网站排名百度搜索引擎emlog周松松博客黑帽seo逆冬SEO优化权重网站排名优化织梦教程织梦建站东莞SEO网站优化排名优化SEO课程百度站长平台熊掌号关键词长尾关键词百度搜索百度提交SEO排名SEO培训

热门文章

短网址 | 音乐 | 网络创业 | 版权问题 |

Copyright Your WebSite.Some Rights Reserved.备案号:冀ICP备19016991号-2