亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PHP+AJAX實現(xiàn)驗證碼無刷新驗證

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

        席東

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

        關(guān)鍵詞:驗證碼;PHP;AJAX;SESSION

        中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A

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

        1什么是驗證碼

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

        驗證碼能夠?qū)Ρ┝ζ平饷艽a、無限刷票、論壇灌水等操作進(jìn)行有效防止,當(dāng)前很多網(wǎng)站基礎(chǔ)都會使用驗證碼。簡單來說驗證碼是一個由計算機(jī)自動生成的問題,問題回答的是否正確由計算機(jī)自動評判。一般來說驗證碼所表達(dá)的問題只有人類才能解答,而計算機(jī)是無法解答這個的問題,于是可以得出不能正確回答驗證碼問題的用戶,就不是合法用戶,對這些用戶做出限制,就可以避免很多惡意情況的發(fā)生。

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

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

        2在網(wǎng)站中添加驗證碼

        PHP語言是一種常用的動態(tài)網(wǎng)站編程語言,如何使用PHP語言生成驗證碼呢?

        2.1創(chuàng)建驗證碼

        1)使用imagecreatetruecolor函數(shù)生成指定規(guī)格的圖片

        imagecreatetruecolor(int $width,int $height)

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

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

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

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

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

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

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

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

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

        4)使用mt_rand函數(shù)生成隨機(jī)數(shù)字

        mt_rand(int$min,int$max)

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

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

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

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

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

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

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

        Session又稱為會話控制,Session能夠存儲用戶訪問WEB服務(wù)器時生成的相關(guān)數(shù)據(jù)。當(dāng)用戶在應(yīng)用程序的Web頁面之間跳轉(zhuǎn)時,存儲在Session對象中的數(shù)據(jù)就不會丟失,直到訪問WEB服務(wù)器的會話結(jié)束。

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

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

        然后將生成的隨機(jī)數(shù)保存到SESSION關(guān)聯(lián)數(shù)組中。

        4如何在不刷新網(wǎng)頁的前提下刷新驗證碼

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

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

        5總結(jié)

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

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

        亚洲欧美精品91| 人妻熟妇乱又伦精品hd| 宅男666在线永久免费观看| 日日躁夜夜躁狠狠躁超碰97| 国产日本在线视频| 熟女高潮av一区二区| 无码精品人妻一区二区三区漫画| 亚洲欧美一区二区三区在线| 国产欧美精品一区二区三区–老狼| 在线观看中文字幕一区二区三区 | 扒开美女内裤舔出白水| 国产免费内射又粗又爽密桃视频| 18无码粉嫩小泬无套在线观看 | 精品人妻一区二区三区四区| 国产美女高潮流白浆在线观看| a级三级三级三级在线视频| 久久久久久av无码免费网站下载| 国外精品视频在线观看免费| 精品午夜一区二区三区久久| 亚洲av综合日韩精品久久 | 老熟妇仑乱视频一区二区| Y111111国产精品久久久| 视频一区视频二区亚洲| 美女扒开大腿让男人桶| 日本精品人妻无码77777| 亚洲欧洲日产国码久在线| 一本色道久久88加勒比综合| 国产做国产爱免费视频| 狠狠色狠狠色综合久久第一次| 精品国产亚洲av成人一区| 蜜臀av一区二区三区免费观看| 亚洲午夜无码av毛片久久| 国模无码视频专区一区| 偷拍视频十八岁一区二区三区| 国产又猛又黄又爽| 精品无码国产污污污免费| 亚洲妇女av一区二区| 亚洲天堂一区av在线| 亚洲男同志网站| 成人无码激情视频在线观看| 亚洲天堂av福利在线|