CodeIgniterの勉強メモ (5) キャプチャ

キャプチャ

自動スパムからサーバを守るために、いつもフォームに入れていますね。
CodeIgniterでは、captchaヘルパーが用意されています。
ヘルパーなので、$this->からではなく直接メソッドを使って生成。

前提条件:キャプチャ画像をバファーするフォルダが必要です。ないとエラーになる。

(本例では、キャプチャ画像フォルダはフレームワークフォルダ直下のcaptchaフォルダとします。)

キャプチャの生成

$this->load->helper('url');
$this->load->helper('captcha');
// captchaヘルパーをロード

// キャプチャ生成時のパラメータ
$captcha_config = array(
    'word' => rand(100000,999999),       // 自分で文字を生成することができる。ちなみに漢字を生成してもいいです。
    'img_path' => './captcha/',          // *必須。最初に注意してほしいフォルダです。キャプチャが保存される。
    'img_url' => base_url('captcha/'),   // *必須。
    'font_path' => './fonts/hoge.ttf',   // 漢字などを表示するなら、フォント設定も必要です
    'img_width' => '120',                // 生成される画像の長さ
    'img_height' => 30,                  // 生成される画像の高さ
    'expiration' => 600                  // 廃棄時間
);

$cap = create_captcha($captcha_config);
// 生成されたキャプチャ変数は連想配列です。

キャプチャの使用(つまり連絡配列から情報を取得)

  • ‘image’ => HTML用のimgタグそのまま
  • ‘time’ => ミリ秒
  • ‘word’ => キャプチャの文字

実際に生成されたものをprint_r()で見てみましょう。
(img_pathとimg_url以外全部デフォルト設定の場合)

Array
(
    [word] => 2Ydgs3Pd
    [time] => 1410002485.84
    [image] => <img src="http://localhost:8888/ci/captcha/1410002485.84.jpg" width="150" height="30" alt=" "/>
)

1410002485.84

注意

  • 必須パラメータ:img_path img_url の二個
  • キャプチャのファイル名:生成されたキャプチャのファイル名はミリ秒のタイムスタンプ
  • 廃棄時間に待っても削除されない?廃棄時間になってすぐに削除されるではなく、廃棄時間経過後の新しいキャプチャ生成処理と同時に削除される。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>