訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:-0001-11-30 00:00

類型:網頁設計心得
作者:羽山
文章時間:-0001-11-30 00:00:00
瀏覽人數:3832人
標題: 簡易的GD驗證碼設計
網址:http://sunnyriver.3wa.tw/blog/blog.php?id=1043
內容:
 

呵呵~今天來寫篇使用 PHP-GD 驗證碼

最近剛好冷ㄝ在問這個問題,以前我也是花不少時間研究這玩意兒怎設計

不凹他一﹑二餐再教他實在太過意不去了...

 

GD code 其實可以很簡單,也可以很複雜

產生出來的code,雜亂到連自己都難以辯別就好笑了

 

所以比較簡單的都是使用簡單的英文﹑數字作為驗證

 

有個國外的高手在這方面下了苦心,他將某學校的書拿來掃描,把部分無法電腦辯識的字做成

 

驗證碼,讓線上的使用者在辯證時,幫助電腦建立資料庫~

 

而且提供API讓人免費使用,你可以上 google youtube 這些網站,他們站裡的

 

那套驗證碼多是用同一套的~

 

不過我這次也分享一下最簡單的設計好了,因為真的有些新手還是不知道^^

 

流程大概如下,首先是原本的網頁表單

 

你可能有 form﹑input type=text 這類的東西

 

表單裡就會多張 gd 的圖片,跟一個讓人keyin的輸入框

 

表單送出後,還要不忘檢查當初電腦產生的code,是否跟使用者輸入的是否一致

 

為了防止輕易被破解,所以通常不會利用 get 還是什麼參數去拿圖,會在伺服器使用 session 的功能

 

當圖片開啟時,電腦就會針對連線的session,random一份 gd code

 

其實這樣想就很簡單了~

 

 

看吧,這支是 http://sunnyriver.3wa.tw/demo/gd.php

 

事實上他的原本碼是使用php所撰寫,code當然也簡單到不行

程式碼大概是這樣~


session_start();
header('Content-type: image/png');
$width=65;
$height=35;
$_SESSION['gd_code']=rand(1,9).rand(0,9).rand(0,9);
$new_image=imagecreatetruecolor ( $width , $height);
//顏色宣告
$color_blue=imagecolorallocate($new_image,200,200,255); //顏色 藍
$color_black=imagecolorallocate($new_image,0,0,0); //顏色 黑

//整張弄成白的
imagefill($new_image,0,0,$color_blue);

//放入數值,偷偷的使用新細明體 @_@ 其實你可以換成網路上免錢的字型,比較安全,像王漢忠大大的﹑飛哥的openfont…或其他免費的字型
ImageTTFText ($new_image,24, 0, 10, 25, $color_black, "uming.ttf",$_SESSION['gd_code']);

//輸出成png
imagepng($new_image);
// release memory
imagedestroy($new_image);

 

所以有看到了吧~啟動了session﹑宣告了header﹑弄個小畫布﹑亂數生字,置放位置,生成圖片

 

如此一來,表單只要送出後,去比對 $_SESSION['gd_code']就可以知道使用者是否輸入正確了

 

表單送出的那一頁也要事先啟動session呦~session_start();

 

簡單的示範~以上^^

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【0】
其他分類
最新訓練
(2024-12-22)
【KTM 390】KTM RC390 更換後輪

(2024-12-17)
【木工】三樓客廳椅子維修

(2024-12-17)
【出遊】聯合大學一日遊

(2024-12-02)
【NSR 150】NSR150 改裝回 14T

(2024-11-04)
【酷龍 150】酷龍150 換新鏈條 里程:39250km

(2024-10-31)
【機車綜合相關】煞車檢測筆測量電阻範圍

(2024-10-29)
【機車綜合相關】拆胎特工-輪胎拆胎架

(2024-10-25)
【NSR 150】NSR150 更換前煞車油(簡易) 43177km

(2024-10-25)
【網誌】加密文章測試

(2024-10-19)
【本田 MSX-125】MSX-125 更換前輪軸承