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

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方をメモしました。
最近良く、海外の変なところからのお問い合わせが多かったのでこのブログにも画像認証を設置してみました。
設定手順
securimageのサイトからダウンロードします。
https://www.phpcaptcha.org/download
ダウンロードしたファイルを解凍し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時のパスをあわせるだけで簡単に動きます。
- article
CodeIgniterで接続しているデータベースにPHPからテーブルを作成するサンプルコード
- article
「Codeigniter」トラックバック受信処理について使い方とサンプル
- article
PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプル
- article
PHPから日本語のメールを送信するやり方
- article
「WordPress」ログインしていないユーザへのリダイレクトや自動ログインなど処理いろいろ
- article
PHP(Codeigniter使用)からブログ投稿時にTwitterへ自動投稿してみました。
- article
Remix の Mutation とサーバーアクション徹底活用
- article
【解決策】Codex API で「Rate Limit Exceeded」が出る原因と回避方法
- article
既存 React プロジェクトを Preact に移行する完全ロードマップ
- article
Astro × TypeScript:型安全な静的サイト開発入門
- article
Playwright × Docker:本番環境に近い E2E テストを構築
- article
useQuery から useLazyQuery まで - Apollo Hooks 活用パターン集
- blog
iPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
- blog
Googleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
- blog
【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
- blog
Googleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
- blog
Pixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
- blog
フロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来