メールフォームにCaptchaを導入。

サイトで用意しているメールフォーム(CONTACT)が最近SPAMの標的になっていまして。
これはなんとかせなあかんということで、Captchaを導入してみました。

参考にさせていただいたのはこちら。

PHPで使えるCAPTCHA画像作成ライブラリまとめ:phpspot開発日誌

この中の、KCAPTCHAというライブラリを使ってみました。


まず、PHP Classesに行ってソースをダウンロードします。

Class: KCAPTCHA (font) – PHP Classes

解凍するといくつかファイルが出てきますが、
使用するのはPHPファイルが3つとフォルダが2つ。


配置するとこんな感じです。

  • /lib
    • /captcha
      • /fonts
      • /util
      • kcaptcha.php
      • kcaptcha_config.php
  • /captcha
    • index.php


しておく設定は以下の通り。

kcapcha_config.php
29: $show_credits = false;
30: $credits = '';

index.php
27: include('kcaptcha.phpのURI');


すべてアップロード。

で、あとはexample.phpに書かれているのを参考にやれば問題なし。


試しに設置してみると。


サンプル





<img src="/captcha/index.php?=">

0): if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']): echo "認証OK"; else: echo "認証NG"; endif; endif; unset($_SESSION['captcha_keystring']); ?>


Captchaを表示する部分と、認証を行う部分とでsessionを有効にしてやればOK。
かなり簡単です。

へー。