php学习之验证码问题开发

1.首先先展示一下我写的源代码+session保存验证码

<?php
   

     session_start();  

     session_register("login_check_number");


    $img_height=70;//先定义图片的长 宽
    $img_width=25;
    $authnum='';
    //生成验证码字符
   $ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
   $list=explode(",",$ychar);//使用分隔符存储到数组中
   for($i=0;$i<4;$i++){
     $randnum=rand(0,35);
     $authnum.=$list[$randnum]; 
   }

 
   //把验证码字符保存在session
  $_SESSION["login_check_number"] = $authnum;    


   $aimg=imagecreate($img_height,$img_width);//生成图片
   imagecolorallocate($aimg,255,255,255);//图片底色
   $black=imagecolorallocate($aimg,0,0,0);//定义黑色

   
   for($i=1;$i<=100;$i++)
 {
   imagestring($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"@",imagecolorallocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
  }

  //为了区别背景,这里的颜色不超过200,上面的不小于200

   for($i=0;$i<strlen($authnum);$i++){
 
     imagestring($aimg,mt_rand(3,5),$i*$img_height/4+mt_rand(2,7),mt_rand(1,$img_width/2-2),$authnum[$i],imagecolorallocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
  }
   imagerectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//画一个矩形
  header("Content-type:image/PNG");
   imagepng($aimg);
  imagedestroy($aimg);
?>

解释:

A.explode函数是将某个字符放于数组中存储

  explode(",",$ychar)

B.红色第二部分是将数组中的数按随机选择存储在数组上去

C.imagestring() col颜色将字符串 s 画到 image所代表的图像的xy坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果  font 是 1,2,3,4 或 5,则使用内置字体。

D.imagecolorallocate() 返回一个标识符,代表了由给定的  RGB 成分组成的颜色。redgreen 和  blue 分别是所需要的颜色的红,绿,蓝成分。这些参数是   0 到 255 的整数或者十六进制的  0x00 到 0xFF。imagecolorallocate()必须被调用以创建每一种用在image 所代表的图像中的颜色。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值