首页 > Web开发 > 详细

PHP - 验证码

时间:2015-11-12 21:24:59      阅读:293      评论:0      收藏:0      [点我收藏+]

效果:

技术分享

 

函数:

    /**
     * 
     * 函数名:_captbat()
     * 作用:生成验证码
     * 参数:
     *     1:宽度
     *     2:高度
     *     3:验证码个数
     *     4:是否启用边框
     *     5:不填写为默认值
     * 返回值:返回验证码图片
     * 
     * */
    function _captbat($_width = 75,$_height = 25, $_rnd_code = 4,$_flag = false){
        //创建随机码
        for ($i=0;$i<$_rnd_code;$i++) {
            $_nmsg .= dechex(mt_rand(0,15));
        }
        
        //保存在session
        $_SESSION[code] = $_nmsg;
        
        //创建一张图像
        $_img = imagecreatetruecolor($_width,$_height);
        
        //白色
        $_white = imagecolorallocate($_img,255,255,255);
        
        //填充
        imagefill($_img,0,0,$_white);
        
        if ($_flag) {
            //黑色,边框
            $_black = imagecolorallocate($_img,0,0,0);
            imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);
        }
        
        //随即画出6个线条
        for ($i=0;$i<6;$i++) {
            $_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
            imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
        }
        
        //随即雪花
        for ($i=0;$i<100;$i++) {
            $_rnd_color = imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
            imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),*,$_rnd_color);
        }
        
        //输出验证码
        for ($i=0;$i<strlen($_SESSION[code]);$i++) {
            $_rnd_color = imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
            imagestring($_img,5,$i*$_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION[code][$i],$_rnd_color);
        }
        
        //输出图像
        header(Content-Type: image/png);
        imagepng($_img);
        
        //销毁
        imagedestroy($_img);
    }

 

PHP - 验证码

原文:http://www.cnblogs.com/KTblog/p/4960113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!