算数の計算による
CAPTCHA (Completely Automated Public Turing
tests to tell Computers and Humans Apart : コンピュータと人間を
区別するための、完全に自動化された公開チューリングテスト)
を実装したものです。
このパッケージは、数字の CAPTCHA
(Completely Automated Public Turing
tests to tell Computers and Humans Apart : コンピュータと人間を
区別するための、完全に自動化された公開チューリングテスト)
を作成する機能を提供します。以下のような機能が含まれます。
このパッケージは、数字の CAPTCHA を作成します。
HTTP はステートレスなプロトコルなので、Web ページの安全性を
確保するために、このパッケージを使用してきちんと実装する
必要があります。
詳細な情報は
使用例を参照ください。
以下の例では CAPTCHA の一般的な使用法を説明します。
CAPTCHA が正しく解決された場合にのみ、フォームから送信された内容を
処理します。
例 64-3数字の CAPTCHA の作成
この例は、単純な算数の計算を Text_CAPTCHA_Numeral
で作成する方法を示すものです。
<?php
require_once 'Text/CAPTCHA/Numeral.php';
$num = new Text_CAPTCHA_Numeral;
$operation = $num->getOperation();
/**
* これは、パッケージが作成した計算式を表示します。
*/
print $operation;
?>
|
|
例 64-4数字の CAPTCHA を使用してフォームのセキュリティを確保する
この例では、数字の CAPTCHA を使用してフォームのセキュリティを確保する方法を示します。
作成した計算式を、セッション変数に格納しています。
<?php
require_once 'Text/CAPTCHA/Numeral.php';
$numcap = new Text_CAPTCHA_Numeral;
if (isset($_POST['captcha']) && isset($_SESSION['answer'])) {
if ($_POST['captcha'] == $_SESSION['answer']) {
$errors[] = 'Ok... おそらくあなたは人間ですね..';
} else {
$errors[] = 'あなたは間抜けか人間じゃないかのどちらかですね';
}
}
if (!empty($errors)) {
foreach ($errors as $error) {
print "<h1><font color='red'>$error</font></h1><br />";
}
}
print '
<form name="capter" action="index.php?page=liveExample" method="post">
<table>
<tr>
<th>お客さん、この答えは何ですか?: '.$numcap->getOperation().'</th>
<td><input type="text" value="" name="captcha" /></td>
</tr>
<tr>
<th/>
<td><input type="submit" value="私が人間であることを証明します!" /></td>
</tr>
</form>
';
$_SESSION['answer'] = $numcap->getAnswer();
?>
|
|
Text_CAPTCHA_Numeral は、
算数の計算の CAPTCHA を作成する機能を提供します。