2

Cakephp に fun-captcha ( http://codecanyon.net/item/fun-captcha/163632 ) を実装しようとしています。

$this->CaptchaGenerator = new CaptchaGenerator();
$this->set('captcha0', $this->CaptchaGenerator->renderCaptcha(0));
$this->set('captcha1', $this->CaptchaGenerator->renderCaptcha(1));
$this->set('captcha2', $this->CaptchaGenerator->renderCaptcha(2));
if ($this->request->is('post')):
    $captchaArray['captcha0flag'] = @$this->request->data['captcha0flag'];
    $captchaArray['captcha1flag'] = @$this->request->data['captcha1flag'];
    $captchaArray['captcha2flag'] = @$this->request->data['captcha2flag'];
    for ($i = 0; $i < count($captchaArray); $i++) {
        $responseValue[] = $this->CaptchaGenerator->checkCaptcha($captchaArray, $i);
    }
    pr($responseValue);

pr($responseValue) で、この結果が得られます

配列 ( [0] => 1 [1] => 1 [2] => 1 )

3 つのボックスの値が true であることを意味します。次に、このコードを使用してこの値が true の場合、投稿とタグを保存しようとしています

if ($responseValue == 1) {
    if (isset($temp)) {
        $this->Tag->saveMany($temp);
    }
    $listOfId = $this->Tag->tagIdArray;
    $this->request->data['Claim']['Tag'] = $listOfId;
    $this->Claim->save($this->request->data);
    $this->redirect('/');
}
else {
    $this->Session->setFlash('Nop', 'flash', array('alert' => 'error'));
    $this->redirect('/start-claim');
}

しかし、それでも、フラッシュメッセージ「NOP」を表示する投稿を送信するだけでは十分ではありません。誰でも私を提案できますか????

4

1 に答える 1

0

まず、値が不要になった時点で値の設定を解除し、$responseArray の値を配列として取得しているため、$responseArray == 1 を挿入して次のコードを使用すると、役立つと確信しています :)

データが不要になったらすぐに設定を解除する

if($responseValue[0] && $responseValue[1] && $responseValue[2] == 1) {
                ........
            }
            else {
                ..........
            }
            unset($this->request->data['captcha0flag']);
            unset($this->request->data['captcha1flag']);
            unset($this->request->data['captcha2flag']);

ハッピーコーディング:)

于 2013-08-24T10:32:22.683 に答える