• php实现验证码


    简单纯数字验证码

    <?php
    $image = imagecreate(50,25);
    imagecolorallocate($image,0,0,0);
    $color =  imagecolorallocate($image,255,255,255);
    $code = mt_rand(1000,9999);
    session_start();
    $_SESSION['code'] = $code;
    imagestring($image,4,5,5,$code,$color);
    header("content-type:image/png");
    imagepng($image);
    ?>
    


    数字+字母验证码:

    <?php
    $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
    $image=imagecreate(50,25);
    imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
    $color = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
    for($i=1;$i<=4;$i++) {
        $date=$str[mt_rand(0,strlen($str)-1)];
        $code.=$date;
    }
    session_start();
    $_SESSION['code'] = $code;
    imagestring($image,4,8,4,$code,$color);
    for($i=1;$i<=30;$i++) {
    imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
    }
    for($i=1;$i<=mt_rand(1,5);$i++) {
    imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150));
    }
    header("content-type:image/png");
    imagepng($image);
    ?>
    

    数字+字母验证码(各字母颜色不同):

    <?php
    $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
    $image=imagecreate(50,25);
    imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
    $color[0] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
    $color[1] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
    $color[2] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
    $color[3] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
    for($i=0;$i<4;$i++) {
        $date=$str[mt_rand(0,strlen($str)-1)];
        $code.=$date;
        imagestring($image,5,6+$i*10,4,$code[$i],$color[$i]);
    }
    session_start();
    $_SESSION['code'] = $code;
    for($i=1;$i<=30;$i++) {
    imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
    }
    for($i=1;$i<=mt_rand(1,5);$i++) {
    imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150));
    }
    header("content-type:image/png");
    imagepng($image);
    ?>
    

    流程:

    1.设置字符集

    2.创建图片资源集

    3.设置图片背景颜色

    4.随机取出字符集中的字符

    5.开启SESSION用SESSION变量记录取出的字符集

    6.把取出的字符集加入图片,增加字体颜色

    7.添加干扰点

    8.添加干扰线

    9.填写header文件头

    10.输出图片

  • 相关阅读:
    codeforces 616E. Sum of Remainders 数学
    codeforces 620F. Xors on Segments
    codeforces 417D. Cunning Gena 状压dp
    bzoj 1934 : [Shoi2007]Vote 善意的投票 最小割
    codeforces 628F. Bear and Fair Set 网络流
    codeforces 626E. Simple Skewness 三分
    div嵌套,内层的margin-top会跑到外层
    测试用导航(为了方便在各个测试页面间进行跳转,只需将此js代码引入每个页面即可) V2.0
    ECS_8080端口连接拒绝问题排查
    京东技术架构(二)构建需求响应式亿级商品详情页
  • 原文地址:https://www.cnblogs.com/zox2011/p/2176251.html
Copyright © 2020-2023  润新知