程式CODE

2013年9月29日 星期日

中文大寫數字圖形驗證碼

記得 php 的 gd2模組要裝

原理:
(1)一個pic.php檔做圖形認證,把它當成一個圖檔

  session_start();
//隨機取5碼key
  $key = rand(10000,99999);
//將key存入session
  $_SESSION['key'] = $key;
//阿拉伯數字轉中文大寫
  $cht = array(0=>"零",1=>"壹",2=>"貳",3=>"參",4=>"肆",5=>"伍",6=>"陸",7=>"柒",8=>"捌",9=>"玖");
  for($i=0;$i<5;$i++) $cht_key.=$cht[substr($key,$i,1)];

  header("Content-type: image/gif");
  $im = imagecreatefromgif("./images/captcha_bk.gif") or die("無法建立GD圖片");
  $text_color = imagecolorallocate($im, 160, 90, 44);
//選定中文字型
  imagettftext($im, 50, 0 , 61, 49, $text_color,"./font/wt071.ttf",$cht_key);
  imagegif($im);
  imagedestroy($im);


(2)一個登入畫面檔index.php提供使用者輸入驗證碼$key,並引入圖形
<img src=pic.php>



(3)再一個php去比對使用者輸入的$key和$_SESSION['key']是否一樣

if($_SESSION['key']!=$key or empty($_SESSION['key'])){
      return "驗證碼不符";
    }else{
      return "驗證成功!";
    }



參考自:
http://tad0616.net/modules/tad_book3/page.php?tbdsn=219
http://php.freehostingguru.com/function.php-ImageTTFText.php

沒有留言:

張貼留言