[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Captcha-Operation.xml
bloba7bd5258b08d7c1373c7f923c3e5214c091add2f
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20765 -->
4 <sect1 id="zend.captcha.operation">
5     <title>Captcha の方法</title>
7     <para>
8         すべての <acronym>CAPTCHA</acronym> アダプタは
9         <classname>Zend_Captcha_Adapter</classname> を実装しています。
10         これは次のようなインターフェイスです。
11     </para>
13     <programlisting language="php"><![CDATA[
14 interface Zend_Captcha_Adapter extends Zend_Validate_Interface
16     public function generate();
18     public function render(Zend_View $view, $element = null);
20     public function setName($name);
22     public function getName();
24     public function getDecorator();
26     // Zend_Validate_Interface のための追加のメソッド
27     public function isValid($value);
29     public function getMessages();
31     public function getErrors();
33 ]]></programlisting>
35     <para>
36         name アクセサを使用して、<acronym>CAPTCHA</acronym> の識別子を設定したり取得したりします。
37         <methodname>getDecorator()</methodname> を使用して <classname>Zend_Form</classname> のデコレータを指定します。
38         名前、あるいは実際のデコレータオブジェクトを返します。
39         しかし、本当に大事なのは <methodname>generate()</methodname>
40         と <methodname>render()</methodname> です。
41         <methodname>generate()</methodname> は、<acronym>CAPTCHA</acronym> トークンを作成します。
42         通常は、このトークンをセッションに保存し、
43         その後のリクエストの内容と比較することになります。
44         <methodname>render()</methodname> は <acronym>CAPTCHA</acronym> の情報を
45         (画像や figlet、なぞなぞなどの形式で) レンダリングします。
46     </para>
48     <para>
49         典型的な使用例は、次のようになります。
50     </para>
52     <programlisting language="php"><![CDATA[
53 // Zend_View インスタンスを作成します
54 $view = new Zend_View();
56 // 最初のリクエスト
57 $captcha = new Zend_Captcha_Figlet(array(
58     'name' => 'foo',
59     'wordLen' => 6,
60     'timeout' => 300,
61 ));
63 $id = $captcha->generate();
64 echo "<form method=\"post\" action=\"\">";
65 echo $captcha->render($view);
66 echo "</form>";
68 // それ以降のリクエスト
69 // すでに captcha が準備済みで、$_POST['foo'] の中身が
70 // 次のようなキー/値の配列になっているものとします
71 // id => captcha ID, input => captcha value
72 if ($captcha->isValid($_POST['foo'], $_POST)) {
73     // 正解!
75 ]]></programlisting>
76 </sect1>
77 <!--
78 vim:se ts=4 sw=4 et:
79 -->