php 验证码

前端:

<img id="CodePIC" src="/api/getVerifyCode" style="width:80px; height:28px; vertical-align: middle;">

后端:

public function getVerifyCode() {
    session_start();

    //验证码是具有时效性的
    //删除存在session中的验证码
    if(isset($_SESSION['verify'])){
        unset($_SESSION['verify']);
    }

    //生产4位验证码
    $verify = '';
    $str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXY";
    for($i=0; $i<4; $i++){
        $t = rand(0, strlen($str)-1);
        $verify.= $str[$t];
    }
    $_SESSION['verify'] = $verify;

    //生成验证码图片
    $width = 32;
    $height= 93;

    $img = imagecreate($height, $width);           //创建图片资源
    imagecolorallocate($img, 255, 255, 255);       //图片背景颜色

    //加入背景干扰象素
    for ($i=1; $i<=50; $i++) {
        $color = imagecolorallocate($img, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
        imagestring($img, 1, mt_rand(1,$height), mt_rand(1,$width), "@", $color);
        //imagestring参数(资源, 字体大小, 高度, 宽度, 内容, 字体颜色)
    }

    //加入验证码字体
    for ($i=0; $i<strlen($verify); $i++){
        $color = imagecolorallocate($img, mt_rand(0,50), mt_rand(0,50), mt_rand(0,50));
        imagestring($img, 5, $i*$height/4+mt_rand(2,7), mt_rand(1,$width/2-2), $verify[$i], $color);
    }

    Header("Content-type: image/PNG");
    ImagePNG($img);                    //以PNG格式将图像输出到浏览器或文件
    ImageDestroy($img);                //释放资源
}

如有什么不懂的地方,请联系本人qq:840336847,还给新手提供以下服务:

1、加入团队参加为期1个月的实战训练并提供指导

2、提供Linux服务器,为成员部署外网访问项目环境

3、简历和就业指导等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值