zoukankan      html  css  js  c++  java
  • PHP 生成验证码

    /**
    * _code()是验证码函数
    * @access public
    * @param int $_width 表示验证码的长度
    * @param int $_height 表示验证码的高度
    * @param int $_rnd_code 表示验证码的位数
    * @param bool $_flag 表示验证码是否需要边框
    * @return void 这个函数执行后产生一个验证码
    */
    function _code($_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);
    }

  • 相关阅读:
    lnmp配置https,配置pathinfo---------记录学习
    微信公众号第三方授权登录->自带源码-->自己记录学习
    二维数组排序
    php 图片,文件下载
    PHP最彻底的退出登录,清除session、cookie的代码
    php 安装redis扩展
    2020系统综合实践(七)第15组
    2020系统综合实践(六)第15组
    2020系统综合实践(五)
    2020系统综合实践(四)
  • 原文地址:https://www.cnblogs.com/vsmart/p/6998600.html
Copyright © 2011-2022 走看看