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);
    }

  • 相关阅读:
    Centos7.6部署rsyslog+loganalyzer+mysql日志管理服务器
    linux编程基础
    天融信防火墙NGFW4000,无法进入web管理和community属性查看
    H3C_IRF_BFD配置
    H3C_IRF_LACP配置
    H3C_IRF
    h3c_7506e引擎主备镜像同步
    cisco4507引擎模式切换
    usg6000
    vpdn1
  • 原文地址:https://www.cnblogs.com/vsmart/p/6998600.html
Copyright © 2011-2022 走看看