1

次のコードを使用して CAPTCHA を生成しています。

$captcha = $this->createElement('captcha', 'captcha',
    array('required' => true,
    'captcha' => array('captcha' => 'Image',
    'font' => 'resource/fonts/arial.ttf',
    'fontSize' => '24',
    'wordLen' => '5',
    'height' => '50',
    'width' => '150',
    'imgDir' => 'resource/captcha',
    'imgUrl' => 'resource/captcha',
    'gcFreq'=>'10',    
    'dotNoiseLevel' => '10',
    'lineNoiseLevel' => '2')));

    $captcha->setLabel('Captcha');

次のコードが生成されます。

<label for="captcha-input" class="login_label required">Captcha</label>
<img width="150" height="50" alt="" src="captcha/eb3a592c8b1c7a71b0c7ce5179422be2.png" />
<input type="hidden" name="captcha[id]" value="eb3a592c8b1c7a71b0c7ce5179422be2" id="captcha-id">
<input type="text" name="captcha[input]" id="captcha-input" value="">
<input type="text" name="captcha" id="captcha" value="eb3a592c8b1c7a71b0c7ce5179422be2">

次のような余分な入力テキストフィールドを削除する方法を教えてもらえますか

<input type="text" name="captcha" id="captcha" value="eb3a592c8b1c7a71b0c7ce5179422be2">

前もって感謝します

4

4 に答える 4

3

することが重要です

$this->getElement('captcha')->removeDecorator("viewhelper");

ElementsDecorators を有効にした後(最初に ViewHelper を設定します。これは削除しないでください。とにかく必要です)

私にとっては、次のようになります。

$this->setElementDecorators(array(
    'ViewHelper',
    'Errors',
    array(array('data' => 'HtmlTag'), array('tag' => 'td')),
    array('Label', array('tag' => 'td')),
    array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
));

$this->getElement('captcha')->removeDecorator("viewhelper");
于 2012-07-05T13:52:32.130 に答える
0

私も同じ問題を抱えていました。「ViewHelper」デコレータを削除すると、キャプチャが適切にレンダリングされます。

于 2011-11-15T14:51:02.587 に答える
0

これを試すことができます:

$this->getElement('captcha')->removeDecorator("viewhelper");
于 2011-10-31T16:34:21.950 に答える
0

その入力は「追加」ではなく、必須です。

CAPTCHA が検証されると、そのフィールドの値を使用して CAPTCHA の正しい解決策が検索され、ユーザーの入力と比較されます。

そのフィールドがないと、CAPTCHA が壊れます。

そもそもなぜそれを削除したいのですか?

于 2011-07-23T10:16:28.997 に答える