• php验证码


     1 <?php
     2 session_start();
     3 header('Content-Type: text/html;charset=UFT-8');
     4 header("Content-type:image/png");
     5 //定义header,声明图片文件,最好是png,无版权之扰; 
     6 //生成新的四位整数验证码
     7 $verifiability_code = '';
     8 $str = 'abcdefghijkmnpqrstuvwxyz23456789'; 
     9 
    10 //定义用来显示在图片上的数字和字母;
    11 $l = strlen($str); //得到字串的长度; 
    12 //循环随机抽取四位前面定义的字母和数字; 
    13 for($i=1;$i<=4;$i++)
    14 { 
    15 $num=rand(0,$l-1); 
    16 //每次随机抽取一位数字;从第一个字到该字串最大长度,
    17 //减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
    18 $verifiability_code.= strtoupper($str[$num]);
    19 //将通过数字得来的字符连起来一共是四位;
    20 }
    21 
    22 //使用前先注销掉原有的数据
    23 unset ($_SESSION['verifiability_code']);
    24 //存入SESSION内
    25 $_SESSION['verifiability_code'] = $verifiability_code;
    26 
    27 //其它页面只要包含了该图片
    28 //生成验证码图片,
    29 srand((double)microtime()*1000000);
    30 $im = imagecreate(50,22);//图片宽与高; 
    31 //主要用到黑白灰三种色;
    32 $black = ImageColorAllocate($im, 238,238,238);
    33 $white = ImageColorAllocate($im, 0,0,0);
    34 $gray = ImageColorAllocate($im, 100,100,100); 
    35 //将四位整数验证码绘入图片
    36 imagefill($im,68,60,$gray);
    37 //如不用干扰线,注释就行了;
    38 $li = ImageColorAllocate($im, 255,255,255);
    39 for($i=0;$i<3;$i++) 
    40 {//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入; 
    41 imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);
    42 } 
    43 //字符在图片的位置;
    44 imagestring($im, 5, 10, 2, $verifiability_code, $white);
    45 for($i=0;$i<90;$i++)
    46 {//加入干扰象素
    47 imagesetpixel($im, rand()%70 , rand()%30 , $gray);
    48 }
    49 ImageGIF($im);
    50 ImageDestroy($im);
    51 ?>
  • 相关阅读:
    SQL大全基本语法
    ASP.NET实现二维码
    JMeter下载及安装配置完整版
    windows下搭建nginx负载均衡
    C# 接口生成工具Swagger用法
    在IIS上部署网站,应用程序池选择.Net Framework版本为 v4.0.30319后,打开网站报错
    sqlserver 中WITH NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
    C#进阶学习笔记
    C#单例模式的理解
    实现WebService只返还json结构数据
  • 原文地址:https://www.cnblogs.com/lh460795/p/2876285.html
Copyright © 2020-2023  润新知