T-CREATOR

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

PHPでフォーム送信時のCAPTCHA(画像認証) を簡単に設置できる「Securimage」の使い方とサンプル
この記事は公開されてから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時のパスをあわせるだけで簡単に動きます。

記事Article

もっと見る