VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php 简单的验证码生成实例

验证码可以防止一些用户重复提交来猜密码或利用暴力工具来猜密码,我们加了验证码之后给他们增加了不少难度了,下面我提供一款基于session验证码程序.

在网站的登陆和注册的时候,经常会用到验证码来防止别人用机械暴力注册或登陆,加上验证码这样一定程度上让网站安全很多,下面是一个比较简单的验证码生成,同时给session赋值,代码如下:

  1. <?php 
  2. session_start(); 
  3. header(“Content-type: image/png”); 
  4. //创建真彩色白纸 
  5. $im = @imagecreatetruecolor(50, 20) or die(“建立图像失败”); 
  6. //获取背景颜色 
  7. $background_color = imagecolorallocate($im, 255, 255, 255); 
  8. //填充背景颜色(这个东西类似油桶) 
  9. imagefill($im,0,0,$background_color); 
  10. //获取边框颜色 
  11. $border_color = imagecolorallocate($im,200,200,200); 
  12. //画矩形,边框颜色200,200,200 
  13. imagerectangle($im,0,0,49,19,$border_color); 
  14.  
  15. //逐行炫耀背景,全屏用1或0 
  16. for($i=2;$i<18;$i++){ 
  17. //获取随机淡色 
  18. $line_color = imagecolorallocate($im,rand(200,255),rand(200,255),rand(200,255)); 
  19. //画线 
  20. imageline($im,2,$i,47,$i,$line_color); 
  21.  
  22. //设置字体大小 
  23. $font_size=12; 
  24.  
  25. //设置印上去的文字 
  26. $Str[0] = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”; 
  27. $Str[1] = “abcdefghijklmnopqrstuvwxyz”; 
  28. $Str[2] = “01234567891234567890123456″; 
  29.  
  30. //获取第1个随机文字 
  31. $imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)]; 
  32. $imstr[0]["x"] = rand(2,5); 
  33. $imstr[0]["y"] = rand(1,4); 
  34.  
  35. //获取第2个随机文字 
  36. $imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)]; 
  37. $imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1); 
  38. $imstr[1]["y"] = rand(1,3); 
  39.  
  40. //获取第3个随机文字 
  41. $imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)]; 
  42. $imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1); 
  43. $imstr[2]["y"] = rand(1,4); 
  44.  
  45. //获取第4个随机文字 
  46. $imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)]; 
  47. $imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1); 
  48. $imstr[3]["y"] = rand(1,3); 
  49.  
  50. //将显示的数组赋值给session 
  51. $_SESSION['CODE'] = $imstr[0]["s"].$imstr[1]["s"].$imstr[2]["s"].$imstr[3]["s"]; 
  52.  
  53. //写入随机字串 
  54. for($i=0;$i<4;$i++){ 
  55. $text_color = imagecolorallocate($im,rand(50,180),rand(50,180),rand(50,180)); 
  56. imagechar($im,$font_size,$imstr[$i]["x"],$imstr[$i]["y"],$imstr[$i]["s"],$text_color); 
  57. }//开源代码phpfensi.com 
  58. //显示图片 
  59. imagepng($im); 
  60. //销毁图片 
  61. imagedestroy($im); 
  62. ?> 
  63.  

原文链接:http://www.phpfensi.com/php/20140822/4620.html


相关教程