iT邦幫忙

DAY 1
2

Web開發小撇步分享系列 第 1

[外掛]驗證碼:Cool-PHP-Captcha

本次要介紹的是簡易輕便的驗證碼外掛
省去以往手刻驗證碼的麻煩 只需簡單的設定即可完成表單驗證碼的實作
官方最新的版本是 cool-php-captcha-0.3.1 (基本上好像也沒在更新了...)
下載解壓後會有範例 基本上它的驗證流程就是

  1. 利用HTML <img>讀取captcha.php

  2. captcha.php讀(或不讀)字典檔產生驗證碼字串

  3. 利用PHP GD函式的image語法產生圖片

  4. 再將正確的驗證碼字串存入$_SESSION['captcha']

  5. 最後從使用者表單送出的字串判斷是否符合
    另外 captcha.php其中有可供使用者自行設定的選項
    以下做個簡單介紹:

    // OPTIONAL Change configuration...
    $captcha->wordsFile = 'words/en.php'; //是否讀取字典檔 若否則改為null
    $captcha->session_var = 'secretword'; //可自訂session的變數名稱 預設為captcha
    $captcha->imageFormat = 'png'; //圖片格式
    $captcha->lineWidth = 3; //干擾線長度
    $captcha->scale = 3; $captcha->blur = true; //是否帶有模糊效果及其比例
    $captcha->resourcesPath = "resources"; //附件的路徑

    // OPTIONAL Simple autodetect language example
    if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    $langs = array('en', 'es'); //根據語系的不同切換字典檔
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    if (in_array($lang, $langs)) {
    $captcha->wordsFile = "words/$lang.php";
    }
    }

範例:
index.php

<form action='auth.php' method='POST'>
 <img src='captcha.php'> <!-- 產生驗證碼圖示 -->
 <input type='text' name='captcha' value=''> <!-- 使用者在此輸入驗證碼 -->
 <input type='submit' value='送出'>
</form>

auth.php

<?php
 session_start();
 //依據上述使用者自訂選項中的session_var設定為secretWord
 if($_SESSION['secretword'] == $_POST['captcha']) {
  echo "驗證成功!";
 }
 else {
  echo "驗證失敗!";
 }
?>

下一篇
PHP與MSSQL的邂逅
系列文
Web開發小撇步分享2

1 則留言

0
timloo
iT邦研究生 2 級 ‧ 2012-10-08 21:21:34

以為是另一個tony,
想說??,怎麼從超人,變成強人。

原來都叫tony.

後面跟著數字不一樣。

我要留言

立即登入留言