用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php 简单的验证码生成实例

时间:2015-01-23  来源:西部数据  作者:西部数据

验证码可以防止一些用户重复提交来猜密码或利用暴力工具来猜密码,我们加了验证码之后给他们增加了不少难度了,下面我提供一款基于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. ?> 
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门