網(wǎng)站在線留言系統(tǒng)怎樣設(shè)計(jì)驗(yàn)證碼?驗(yàn)證碼技術(shù),是為了防止用戶名被暴力破解,在簽寫留言頁面中要求輸入驗(yàn)證碼,深圳網(wǎng)站制作公司認(rèn)為通常情況下,如果輸入的驗(yàn)證碼錯(cuò)誤,將重新刷新頁面,所簽寫的留言信息被清空,這樣給用戶操作造成了一定的損失。為了避免這一現(xiàn)象的發(fā)生,本模塊在實(shí)現(xiàn)簽寫留言信息時(shí),驗(yàn)證碼在當(dāng)前頁進(jìn)行驗(yàn)證,即使驗(yàn)證碼輸入錯(cuò)誤,也不會(huì)丟失留言信息,而會(huì)保留原始的留言信息,效果如圖22.9所示。
【操作步驟】
第1步,設(shè)置驗(yàn)證碼的表單元素,然后添加一個(gè)隱藏域,用來記錄隨機(jī)數(shù)的值。<inputname="checkcode"type="text"id="checkcode"size="12"/><inputtype="hidden"name="createcheckcode"value="">
第2步,獲取驗(yàn)證碼。驗(yàn)證碼通過Math.random()函數(shù)生成隨機(jī)數(shù)的方式得到,rand()函數(shù)可以獲取指定范圍內(nèi)的隨機(jī)數(shù)。在簽寫留言頁面上生成一組4位的隨機(jī)數(shù)(index.php)。<scriptlanguage="javascript">varnum1=Math.round(Math.random()*10000000);varnum=num1.toString().substr(0,4);
document.form1.createcheckcode.value=num;document.write("<imgname=codeimg4src='checks.php?num="+num+"'>");</script>
第3步,顯示隨機(jī)數(shù)圖片。顯示隨機(jī)數(shù)的方式很多,將隨機(jī)數(shù)寫入一個(gè)圖片中再顯示是目前常用的方法。
【拓展】在PHP中,可以使用GD函數(shù)庫來實(shí)現(xiàn)顯示隨機(jī)數(shù)圖片。用戶需要先在php.ini配置文件中去除extension=php_gdz.dll前面的分號(hào),打開GD函數(shù)庫擴(kuò)展,然后重新啟動(dòng)Apache服務(wù)器即可。
? imagecreate()函數(shù)imagecreate()函數(shù)用來創(chuàng)建一個(gè)基于調(diào)色板的空白圖像源,這是生成圖片的第一步。該函數(shù)的基本語法如下:resourceimagecreate(int$x_size,int$y_size)參數(shù)$x_size和$y_size分別指定了圖像的寬和高。
? imagecolorallocate()函數(shù)imagecolorallocate()函數(shù)可以為創(chuàng)建后的圖像分配顏色。該函數(shù)的基本語法如下:intimagecolorallocate(resource$image,int$red,int$green,
int$blue)參數(shù)image是一個(gè)圖像源。red、green和blue則表示紅、黃、藍(lán)3種顏色。每種顏色的取值范圍在1~255之間。
? imagestring()函數(shù)圖像創(chuàng)建完成后,就可以使用imagestring()函數(shù)添加圖像文字。該函數(shù)的語法如下:boolimagestring(resource$image,int$font,int$x,int$y,string$s,int$col)imagestring()函數(shù)使用col顏色將字符串s畫到image所代表的圖像的x、y坐標(biāo)處,這是字符串左上角坐標(biāo),整幅圖像的左上角為0、0。如果font是1、2、3、4或5,則使用內(nèi)置字體。
? imagepng()函數(shù)該函數(shù)將創(chuàng)建完成的圖片以png的格式輸出。該函數(shù)的語法如下:boolimagepng(resource$image[,string$filename])參數(shù)image是要保存的圖像源,參數(shù)filename是要保存的圖像名。如果省略,則直接輸出到瀏覽器。
? imagedestroy()函數(shù)圖像保存完畢后,使用imagedestroy()函數(shù)來釋放內(nèi)存。該函數(shù)的語法如下:boolimagedestroy(resource$image)在本系統(tǒng)中,應(yīng)用GD函數(shù)庫生成隨機(jī)圖片的實(shí)現(xiàn)方法如下(checks.php):
提交表單信息后,調(diào)用自定義函數(shù)check_form()來實(shí)現(xiàn)在當(dāng)前頁驗(yàn)證輸入的驗(yàn)證碼是否正確(
正確(index.php)。好了,網(wǎng)站制作公司本文關(guān)于“PHP網(wǎng)站制作我們?cè)鯓幼龊昧粞韵到y(tǒng)的驗(yàn)證碼詳解”知識(shí)就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。