www.adminn.cn
站长正能量分享网!

php 简单的验证码生成实例

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

验证码可以防止一些用户重复提交来猜密码或利用暴力工具来猜密码,我们加了验证码之后给他们增加了不少难度了,下面我提供一款基于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. ?> 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php 简单的验证码生成实例》
文章链接:https://www.adminn.cn/news/8102.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

扫码支付后请联系右侧QQ发送下载地址!!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏