成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分享Ruby on rails實現(xiàn)驗證碼技巧

開發(fā) 開發(fā)工具
Ruby on rails實現(xiàn)驗證碼的方法可以說還是比較容易實現(xiàn)的一個方法。在這篇文章中我們將會針對這一實現(xiàn)技巧為大家詳細講解。

Ruby on rails的應(yīng)用可以幫助編程人員快速簡便靈活的實現(xiàn)各種代碼編程。那么今天我們就來看看Ruby on rails實現(xiàn)驗證碼的相關(guān)技巧方法。#t#

1.在windows上安裝Rmagic,如果你是通過gem安裝的

require'Rmagic'

要修改為:

require'rubygems'

require'Rmagick'

才能正確引入。

2.網(wǎng)上那個Ruby on rails實現(xiàn)驗證碼例子,畫布是使用Rmagic內(nèi)置的圖像格式,Rmagic內(nèi)置的圖像格式還有:

gradient*梯度,比如gradient:red-blue

granite

花崗石,比如: "granite:".

logo

logo型的圖像. 如: "logo:",后面會多顯示一個五角星^_^

netscape

非常漂亮的彩條。如: "netscape:"

null*

空白 使用方式: "null:"

rose

玫瑰 使用方式 : "rose:"

xc*

設(shè)置一個背景色,比如"xc:green"

一個修改的Ruby on rails實現(xiàn)驗證碼例子,在rails的models下存為noisy_image.rb,在Controller就可以這樣調(diào)用NoisyImage.new(6) :

 

  1. require'rubygems'  
  2. require'Rmagick'  
  3. classNoisyImage  
  4. includeMagick  
  5. attr_reader:code,:code_image  
  6. Jiggle=15 
  7. Wobble=15 
  8. definitialize(len)  
  9. chars=('a'..'z').to_a-['a','e','i','o','u']  
  10. code_array=[]  
  11. 1.upto(len){code_array<<chars[rand
    (chars.length)]}  
  12. granite=Magick::ImageList.new('xc:#EDF7E7')  
  13. canvas=Magick::ImageList.new  
  14. canvas.new_image(32*len,50,Magick::
    TextureFill.new(granite))  
  15. text=Magick::Draw.new  
  16. text.font_family='times' 
  17. text.pointsize=40 
  18. cur=10 
  19. code_array.each{|c|  
  20. rand(10)>5?rot=rand(Wobble)
    :rot=-rand(Wobble)  
  21. rand(10)>5?weight=NormalWeight
    :weight=BoldWeight 
  22. text.annotate(canvas,0,0,cur,
    30+rand(Jiggle),c){  
  23. self.rotation=rot  
  24. self.font_weight=weight  
  25. self.fill='green' 
  26.  }  
  27.  cur+=30  
  28. }  
  29. @code=code_array.to_s  
  30. @code_image=canvas.to_blob{  
  31. self.format="JPG" 
  32. }  
  33. end  
  34. end 

3.與rails應(yīng)用的結(jié)合,和一般的驗證碼原理一樣,將產(chǎn)生的隨機數(shù)存儲在session或者request范圍內(nèi),提交的時候進行比較驗證即可。比如產(chǎn)生圖片的時候?qū)㈦S機字母存儲在session[:code]中:

 

  1. session[:noisy_image]=
    NoisyImage.new(6)  
  2. session[:code]=session
    [:noisy_image].code 

Ruby on rails實現(xiàn)驗證碼在進行驗證的時候,比較提交的type_code與session[:code]即可,為了安全性考慮,***還是不考慮使用客戶端驗證。

 

  1. unlesssession[:code]
    ==params[:type_code]  
  2. flash[:notice]=
    '驗證碼填寫錯誤,請重新注冊,謝謝!'  
  3. returnredirect_to:action=>:new   
  4. end 

在頁面顯示圖片,類似servlet一樣直接調(diào)用Controller的action:

 

  1. defcode_image  
  2. image=session[:noisy_image].code_image  
  3. send_dataimage,:type=>
    'image/jpeg',:disposition=>'inline'  
  4. end  
  5. < imgheightimgheight='30'
    src="/test/code_image"> 

Ruby on rails實現(xiàn)驗證碼的相關(guān)技巧方法就為大家介紹到這里。

責(zé)任編輯:曹凱 來源: ddvip.com
相關(guān)推薦

2009-12-16 16:37:59

Ruby on Rai

2009-12-14 15:30:43

安裝Ruby on R

2009-12-17 14:36:57

Ruby on Rai

2009-12-16 17:37:31

Ruby on Rai

2009-12-17 17:37:42

Ruby on Rai

2009-12-16 15:23:33

Ruby on rai

2015-09-21 15:31:05

php實現(xiàn)驗證碼

2009-12-18 14:19:45

Ruby on Rai

2009-12-15 10:23:23

Ruby應(yīng)用技巧

2009-12-18 13:13:59

Ruby on Rai

2009-12-16 17:07:27

Ruby on Rai

2009-08-27 10:21:22

Ruby on Rai

2013-06-19 10:19:59

2009-12-30 16:19:49

Silverlight

2009-06-26 15:17:27

jQuery

2020-09-29 06:43:12

Java

2009-12-16 17:31:30

Ruby on Rai

2009-12-15 18:15:24

Ruby連接到LDAP

2009-12-16 17:24:26

Ruby on Rai
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美久久精品一级c片 | 美女福利视频 | 性国产xxxx乳高跟 | 天堂资源视频 | www.黄色在线观看 | 日韩一区二区三区在线 | 日韩色图视频 | 日韩中文字幕第一页 | 久久久高清 | 日韩电影一区 | 一区二区三区在线免费观看 | 久久久久久亚洲欧洲 | 欧美一区二区另类 | 国产精产国品一二三产区视频 | 亚洲黄色在线 | 国产精品久久久久久久久久免费 | 日韩精品一区中文字幕 | 永久av| 久久综合婷婷 | 在线视频日韩 | 国产日韩欧美激情 | 四虎影视1304t | 国产精品久久国产精品久久 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲成人一区二区三区 | 久久国际精品 | 精品一区二区三区中文字幕 | 福利视频一区二区 | 91久色 | 欧美高清性xxxxhd | 国产精品久久久久久av公交车 | 亚洲欧美日韩精品久久亚洲区 | 水蜜桃久久夜色精品一区 | 一区二区三区在线看 | 中文字幕一区二区三区四区五区 | 一二三四av | 农村妇女毛片精品久久久 | 日韩在线电影 | 日韩精品视频一区二区三区 | 手机看片在线播放 | 国产a区 |