999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PHP+AJAX實現驗證碼無刷新驗證

2019-01-06 02:19:13席東
電腦知識與技術 2019年32期

席東

摘要:驗證碼對大家來說應該不會陌生,諸如登錄賬號、發表評論等操作,網站一般都會要求用戶輸入驗證碼。那么驗證碼在網站中起了什么作用呢?當我們在制作網站時如何添加驗證碼功能呢?下面就驗證碼的功能、如何使用PHP生成驗證碼、如何實現無刷新局部更新進行介紹。

關鍵詞:驗證碼;PHP;AJAX;SESSION

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2019)32-0053-02

1什么是驗證碼

驗證碼(CAPTCHA)是“Completely Automated Public Turingtest to tell Computers and Humans Apart”(全自動區分計算機和人類的圖靈測試)的縮寫。它是一種能夠區分用戶是計算機還是人類的程序。

驗證碼能夠對暴力破解密碼、無限刷票、論壇灌水等操作進行有效防止,當前很多網站基礎都會使用驗證碼。簡單來說驗證碼是一個由計算機自動生成的問題,問題回答的是否正確由計算機自動評判。一般來說驗證碼所表達的問題只有人類才能解答,而計算機是無法解答這個的問題,于是可以得出不能正確回答驗證碼問題的用戶,就不是合法用戶,對這些用戶做出限制,就可以避免很多惡意情況的發生。

驗證碼的種類有很多,有的是一張圖片,圖片上有數字,字符、漢字、運算式等信息;有的是多張圖片需要用戶根據要求進行選擇;有的需要用戶使用鼠標拖動完成驗證。向網站進行數據請求時,用戶需要識別圖片上的內容,然后網站會檢查用戶輸入的驗證碼與系統生成的驗證碼是否一致,如一致則認為這次訪問網站的請求是一個正常的操作,如驗證碼不一致,網站則會拒絕此次請求。

驗證碼可有效防止一些惡意攻擊,對于提升網站的安全性、可服務性有重要意義。

2在網站中添加驗證碼

PHP語言是一種常用的動態網站編程語言,如何使用PHP語言生成驗證碼呢?

2.1創建驗證碼

1)使用imagecreatetruecolor函數生成指定規格的圖片

imagecreatetruecolor(int $width,int $height)

imagecreatetruecolor()如果執行成功,會返回一個圖像標識符,代表了一幅大小為x_size和y_size的黑色圖像,該函數第一個參數是圖像的寬度,第二個參數是圖像的高,單位為像素,如執行失敗返回FALSE。

2)使用ImageColorAllocate函數為圖像分配顏色

imagecolorallocate(resource $image,int $red,int $green,int$blue)

imagecolorallocate()執行成功后,返回一個標識符,代表由給定的RGB成分組成的顏色。該函數的$image參數是一個圖像標識符,$red,$green和$blue分別是所需要的顏色的紅,綠,藍成分,顏色參數是0到255的整數或者十六進制的Ox00到OxFF。如執行失敗則返回-1。

如果需要可以使用rand()和mt_rand()函數生成隨機顏色,如:

$rand_color=ImageColorAllocate($im,rand(0,255),rand(0,255),rand(0,255))

3)使用ImageFill函數填充圖片的背景色

imagefill(resource$image,int$x,int$y,int$color)

imagefill()函數在image圖像的坐標x,y處使用color所代表的顏色,執行區域填充。如執行成功返回TRUE,執行失敗返回FALSE。

4)使用mt_rand函數生成隨機數字

mt_rand(int$min,int$max)

mt_rand()函數如果執行成功,會返回一個在min與max(包含這個值)之間的隨機整數。

5)使用ImageString函數在指定圖像上水平畫一行字符串

imagestring(resource $image,int $font,int $x,int $y,string $s,int$col)

imagestring()函數執行成功,會使用由col指定的顏色將字符串s畫到image所代表的圖像的x,y坐標處,如果font是1,2,3,4或5,則會使用內置字體,當然也可以使用自定義字體,只需加載指定的字體集(ttf)文件即可。

在這里,可以進行多種變形,可以分別將兩個隨機數字的數學運算式顯示到圖片上,還可以隨機生成幾個文字或字符顯示到圖片上等,用來增加機器識別驗證碼的難度。

2.2將驗證碼的答案保存到SESSION

WEB服務器向本地瀏覽器傳輸信息時使用的是HTYP協議,它是一種無狀態(stateless)協議,即HTTP協議自身不能對通信的信息進行保存。HTTP協議不能保留之前一切的請求或響應報文的信息,那么應如何保存驗證碼的信息呢?

Session又稱為會話控制,Session能夠存儲用戶訪問WEB服務器時生成的相關數據。當用戶在應用程序的Web頁面之間跳轉時,存儲在Session對象中的數據就不會丟失,直到訪問WEB服務器的會話結束。

將PHP生成的驗證碼結果保存到SESSION后,在會話結束前可以隨時讀取SESSION中的驗證碼,用來與用戶提交的驗證碼進行比較。

首先使用session_start()函數,啟動一個新會話。

然后將生成的隨機數保存到SESSION關聯數組中。

4如何在不刷新網頁的前提下刷新驗證碼

在訪問網站時,如果用戶看不清楚驗證碼圖片中的內容,就需要重新得到新的驗證碼圖片。這時如果刷新整個頁面能夠刷新出新的驗證碼圖片,但是頁面中其他內容也會被刷新,這會給用戶帶來較差的體驗。

如果能夠只刷新驗證碼圖片,而不影響頁面中其他元素,將會大大提升網頁的友好性及用戶體驗。

5總結

為了防止非法用戶利用計算機自動批量注冊、發表評論、對特定賬號進行暴力破解等行為,驗證碼技術應運而生,驗證碼一般是一個混合了數字或符號的圖片,并且驗證碼圖片可能會含有干擾信息(能夠增加機器識別的難度)。每次請求時均需要進行驗證碼驗證,這將有效防止有人惡意、暴力攻擊。用戶在識別驗證碼時,會占用一些時間,這也能夠起到減輕服務器壓力的作用。

隨著圖片識別技術的不斷發展,圖片上的信息也逐漸可以被計算機程序識別,于是驗證碼技術也在不斷進步,不斷完善,也將變得更加復雜。

主站蜘蛛池模板: 免费中文字幕在在线不卡| 无码又爽又刺激的高潮视频| 国产成人资源| 四虎成人精品| 日本草草视频在线观看| 欧美a√在线| 欧美精品色视频| 国产精品黑色丝袜的老师| 欧美三级视频在线播放| 国产精品99在线观看| 精品国产女同疯狂摩擦2| 亚洲区一区| 欧美一区中文字幕| 乱人伦中文视频在线观看免费| 亚洲视频免费播放| 亚洲综合激情另类专区| 国产色偷丝袜婷婷无码麻豆制服| 新SSS无码手机在线观看| 国产在线专区| 国产91九色在线播放| 亚洲有无码中文网| 狼友视频国产精品首页| 色爽网免费视频| 欧美一级大片在线观看| 又大又硬又爽免费视频| 成人免费黄色小视频| 婷婷激情五月网| 福利小视频在线播放| 欧美精品v欧洲精品| 五月天天天色| 久久99热66这里只有精品一 | 国产精品尤物铁牛tv| 國產尤物AV尤物在線觀看| 午夜久久影院| 亚洲男人的天堂久久精品| 91在线播放国产| 国产无码精品在线播放| 亚洲综合一区国产精品| 免费女人18毛片a级毛片视频| 青草娱乐极品免费视频| 三区在线视频| 国内精品久久久久鸭| 久久精品国产91久久综合麻豆自制| 色视频久久| 国产乱子伦一区二区=| 国产在线精品99一区不卡| 国产精品亚洲一区二区三区z| 久久久亚洲色| 一级片免费网站| 亚洲午夜福利在线| 无码网站免费观看| 一级全免费视频播放| 国产成人综合日韩精品无码不卡 | 国产午夜一级毛片| 日韩精品一区二区三区免费在线观看| 91福利在线看| 四虎AV麻豆| 久草网视频在线| 天天色综网| 久久亚洲精少妇毛片午夜无码| 免费午夜无码18禁无码影院| 精品国产自在在线在线观看| 99热这里只有免费国产精品 | 久久国产乱子伦视频无卡顿| 免费在线色| 91成人在线观看| 久久一色本道亚洲| 成人精品午夜福利在线播放| 91国内外精品自在线播放| 一级毛片网| 国内精自线i品一区202| AV在线天堂进入| 成人在线观看不卡| 欧美日韩综合网| 亚洲精品国产首次亮相| 91香蕉国产亚洲一二三区| 亚洲综合天堂网| 不卡的在线视频免费观看| 呦女精品网站| 91久久大香线蕉| 中文字幕欧美日韩高清| 福利在线不卡一区|