zoukankan      html  css  js  c++  java
  • 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 ?>
  • 相关阅读:
    数以百万计美元的融资YO是什么东东?
    工作流和审批流
    Linux makefile 教程 很具体,且易懂
    【吐槽】火车票一票难求啊
    poj 2828 Buy Tickets(树状数组 | 线段树)
    如花搞笑图片集锦(转贴)
    苹果开发人员账号注冊流程
    优秀团队建设--美国式团队(ppt)
    屏幕分辨率(QQVGA、QVGA、VGA、XGA、WXGA、WUXGA和WSXGA+)
    怎样设计接口?
  • 原文地址:https://www.cnblogs.com/lh460795/p/2876285.html
Copyright © 2011-2022 走看看