php 验证码程序,数字与字母

一款php 验证码程序函数,原理是利用php gd库再生成随便数字,然后创建一个session与一张数字图片,就成了图形验证码了,代码如下:

  1. function fun_code($sessionname)
  2. {
  3. header("content-type:image/png");
  4. session_start();
  5. $authnum_session = '';
  6. //$str = 'abcdefghijkmnpqrstuvwxyz1234567890';
  7. $str = '1234567890';
  8. $l = strlen($str);
  9. for($i=1;$i<=4;$i++)
  10. {
  11. $num=rand(0,$l-1);
  12. $authnum_session.= $str[$num];
  13. }
  14. $_session[$sessionname]=$authnum_session;
  15. srand((double)microtime()*1000000);
  16. $im = imagecreate(50,20);
  17. $black = imagecolorallocate($im, 0,0,0);
  18. $white = imagecolorallocate($im, 255,255,255);
  19. $gray = imagecolorallocate($im, 200,200,200);
  20. imagefill($im,68,30,$gray);
  21. for($i=0;$i<3;$i++)
  22. {
  23. imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);
  24. }
  25. imagestring($im, 5, 8, 2, $authnum_session, $white);
  26. for($i=0;$i<90;$i++)
  27. {
  28. imagesetpixel($im, rand()%70 , rand()%30 , $gray);
  29. }//开源代码phpfensi.com
  30. imagepng($im);
  31. imagedestroy($im);
  32. }
  33. echo fun_code("code");