PHP實現驗證碼的實現

2021-09-30 13:08:43 字數 2384 閱讀 9811

利用php依賴的gd庫可以輕鬆實現驗證碼

驗證碼生成步驟:

1、生成底圖

利用imagecreatetruecolor()方法生成底圖。

函式解釋:

imagecreatetruecolor — 新建乙個真彩色影象

說明:

resource imagecreatetruecolor ( int wi

dth,

int height )

imagecreatetruecolor() 返回乙個影象識別符號,代表了一幅大小為 x_size 和 y_size 的黑色影象。

imagecolorallocate — 為一幅影象分配顏色 int imagecolorallocate( resource im

age,

int red , int gr

een,

int blue )

說明:

imagecolorallocate() 返回乙個識別符號,代表了由給定的 rgb 成分組成的顏色。red,green 和 blue 分別是所需要的顏色的紅,綠,藍成分。這些引數是 0 到 255 的整數或者十六進製制的 0x00 到 0xff。imagecolorallocate() 必須被呼叫以建立每一種用在 image 所代表的影象中的顏色。

$image = imagecreatetruecolor(100,30); //生成一張100*30px大小的

$bgcolor = imagecolorallocate($image,255,255,255); //改變底色 白色

imagefill( $image,0,0,$bgcolor); //填充底色

2、生成驗證內容

利用隨機數配合迴圈進行隨機驗證碼的生成(包括數字驗證碼以及字幕數字混合驗證碼)

$capth_code = '';

for($i=0;$i

<4;$i++) //生成字母 數字混合體驗證碼

$_session['authcode'] = $capth_code;

3、生成驗證碼

利用imagepng生成(當然還有其他樣式可選)

函式解釋:

imagepng — 以 png 格式將影象輸出到瀏覽器或檔案

說明 bool imagepng ( resource im

age[

,str

ing filename ] )

imagepng() 將 gd 影象流(image)以 png 格式輸出到標準輸出(通常為瀏覽器),或者如果用 filename 給出了檔名則將其輸出到該檔案。

header( 'content-type: image/png' );   //一定需要提前輸出的header資訊

imagepng( $image );

4、校驗驗證內容

利用php中的session會話變數進行驗證碼的儲存和校驗。

以下**的實現首先要依賴於php中已經安裝有gd庫。所以在使用下列**時需要驗證你的php是否已經整合了gd庫。可利用phpinfo()檢視。

<?php

/** * author: helen

* createtime: 2015/9/22

19:54

* description:驗證碼的製作

*/ session_start();

$image = imagecreatetruecolor(100,30); //生成一張100

*30px大小的

$bgcolor = imagecolorallocate($image,255,255,255); //改變底色 白色

imagefill( $image,0,0,$bgcolor); //填充底色

/*for($i=0;$i

<4;$i++) //生成隨機四位數字

*/$capth_code = '';

for($i=0;$i

<4;$i++) //生成字母 數字混合體驗證碼

$_session['authcode'] = $capth_code;

for($i=1;$i

<200;$i++) //生成點干擾元素

for($i=0;$i

<3;$i++) //生成線干擾元素

header( 'content-type: image/png' ); //一定需要提前輸出的header資訊

imagepng( $image );

//指令碼結束,清除驗證碼

imagedestroy( $image );

?>

PHP實現驗證碼

目前,不少 為了防止使用者利用機械人自動註冊 登入 灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止 ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。我們這裡展示了如何編寫 php程式實現驗證碼功能 一...

php實現驗證碼

繪製驗證碼 num 5 str getcode num,2 建立畫布 width num 20 height 30 im imagecreatetruecolor width,height color 0 imagecolorallocate im,100,18,199 color 1 imagec...

PHP實現驗證碼

建立並設定大小 image imagecreatetruecolor 100,30 設定驗證碼顏色 方法 imagecolorallocate 物件,int red,int green,int blue bgcolor imagecolorallocate image,190,234,239 設定為...