php生成验证码详细教程

本文章提供一款php生成验证码详细教程,前面是讲关于生成验证核心代码,后面是一款生成与调用的方法,php生成验证码实例代码如下:

  1. <?php
  2. //header("content-type:image/png");
  3. $num ='1234';
  4. $imagewidth=60;
  5. $imageheight=18;
  6. $numimage = imagecreate($imagewidth,$imageheight);
  7. imagecolorallocate($numimage,240,240,240);
  8. for($i=0;$i<strlen($num);$i++){
  9. $x = mt_rand(1,8)+$imagewidth*$i/4;
  10. $y = mt_rand(1,$imageheight/4);
  11. $color=imagecolorallocate($numimage,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
  12. imagestring($numimage,5,$x,$y,$num[$i],$color);
  13. }
  14. for($i=0;$i<200;$i++){
  15. $randcolor=imagecolorallocate($numimage,rand(200,255),rand(200,255),rand(200,255));
  16. imagesetpixel($numimage,rand()%70,rand()%20,$randcolor);
  17. } //开源代码phpfensi.com
  18. imagepng($numimage);
  19. imagedestroy($numimage);
  20. ?>

来看一款生成验证码实例,代码如下:

  1. <?php
  2. //生成验证码图片
  3. session_start();
  4. header("content-type: image/png");
  5. srand((double)microtime()*1000000);
  6. $roundnum=rand(1000,9999);
  7. //把随机数存入session以便以后用
  8. $_session["sessionround"]=$roundnum;
  9. $im = imagecreate(58,28);
  10. $red = imagecolorallocate($im, 255,0,0);
  11. $blue = imagecolorallocate($im, 0,255,0);
  12. //局域填充,相当于背景
  13. imagefill($im,68,30,$red);
  14. //将四位整数验证码绘入图片
  15. imagestring($im, 5, 10, 8, $roundnum, $blue);
  16. for($i=0;$i<50;$i++) //加入干扰象素
  17. {
  18. imagesetpixel($im, rand()%70 , rand()%30 , $black);
  19. }//开源代码phpfensi.com
  20. imagepng($im);
  21. imagedestroy($im);
  22. ?>

html调用方法,代码如下:

  1. <td>验证码</td><td width="20%">
  2. <input name="validt" type="text" size="10" maxlength="4"/></td><td colspan="3" width="80%">
  3. <img src="/www.phpfensi.com/validitpicture.php" name="validitpic" align="absmiddle" /></td>