原生php验证码

/**
     * 验证码
     * @return [type] [description]
     */
    public function actionCode(){
        $session = yii::$app->session;  //开启session
        header("Content-type:image/png");//生成验证码图片
        $str = "1,2,3,4,5,6,7,8,9,a,b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";//要显示的字符,可自己进行增删
        $list = explode(",",$str); //分隔成一维数组
        $cmax = count($list)-1;
        $verifyCode = '';
        $verifyCodelength = 4;    //设置验证码长度
        for($i=0;$i<$verifyCodelength;$i++ ){
              $randnum = mt_rand(0,$cmax);
              $verifyCode .= $list[$randnum];  //取出字符,组合成为我们要的验证码字符
        }
        $session['code'] = md5($verifyCode);    //将字符放入SESSION中
        $im = imagecreate(50,17);                //生成图片
        $black = imagecolorallocate($im, 0,0,90);     //此条及以下三条为设置的颜色
        $white = imagecolorallocate($im, 80,255,180);
        $gray = imagecolorallocate($im, 200,200,160);
        $red = imagecolorallocate($im, 255, 0, 0);
        imagefill($im,0,0,$white);     //给图片填充颜色
        imagestring($im,5,7,0, $verifyCode, $black);   //将验证码绘入图片
        for($i=0;$i<50;$i++){   //加入干扰象素
            imagesetpixel($im,rand(0,50),rand(0,17),$black);    //加入点状干扰素
            imagesetpixel($im,rand(0,50),rand(0,17),$gray);
            //imageline($im,rand(),rand(),rand(),rand(),$red);    //加入线条状干扰素
        }
        for($i=0;$i<2;$i++){
            imagearc($im,rand(0,50),rand(0,17),50,17, 75, 170, $black);    //加入弧线状干扰素
        }
        imagepng($im);    //将图片指接送到浏览器端
        imagedestroy($im);  //释放与image关联的内存
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值