PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプル

セキュリティーPHP
PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプル
Memo
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方をメモしました。

最近良く、海外の変なところからのお問い合わせが多かったのでこのブログにも画像認証を設置してみました。

設定手順

securimageのサイトからダウンロードします。

https://www.phpcaptcha.org/download

securimageのサイトからダウンロード

ダウンロードしたファイルを解凍しsecurimageフォルダを任意のディレクトリへ移動します。

サンプルコード

index.php
<?php $error = ''; $mes = ''; if(isset($_POST['captcha_code'])){ session_start(); //画像の処理 if($_POST['captcha_code'] == ''){ $error = ' class=error '; $mes = '画像認証を入力してください。'; }elseif($_POST['captcha_code'] != $_SESSION["securimage_code_disp"]["default"]){ $error = ' class=error '; $mes = '入力された画像認証をご確認ください。'; }else{ $mes = '画像認証は正しく入力されました。'; } } //エスケープ function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8', FALSE); } ?>

HTML

index.php
<form action="" method="post"> <h1>sample form</h1> <table> <tr> <th>画像認証</th> <td><input type="text" name="captcha_code" value="" <?php echo h($error);?>></td> </tr> <tr> <td colspan="2" class="box"> <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" /> <a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">画像変更</a> </td> </tr> <tr> <td colspan="2" class="box"> <input id="submit" type="submit" value="送信"> </td> </tr> </table> <p><?php echo h($mes);?></p> </form>

imgタグのsrcのパスと画像変更時のonclick時のパスをあわせるだけで簡単に動きます。

終わりに

最後までご覧いただきありがとうございます。
この記事ではPHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプルについて紹介させていただきました。

これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。