7

私は codeigniter 2.4 で作業しています。私は自分のプロジェクトの 1 つで Google recaptcha を使用する必要があります。以下は私のコードです。

// field validation
$this->form_validation->set_rules('recaptcha_challenge_field', 'Captcha Code', 'trim|required|xss_clean|callback_checkCaptcha');

コールバック機能は次のとおりです。

    function checkCaptcha($captcha){
    $resp = $this->recaptcha->recaptcha_check_answer ( $this->input->ip_address(), $this->input->post('recaptcha_challenge_field',true), $this->input->post('recaptcha_response_field',true));

    if($resp->is_valid)
    {
        return true;
        }

    else 
    {
         $this->form_validation->set_message('checkCaptcha', 'Sorry Invalid captcha code');
         return false;
        }

    }

しかし、私はこのエラーが発生しています:

  A PHP Error was encountered

  Severity: Notice

  Message: Trying to get property of non-object

 Filename: controllers/offer.php

 Line Number: 59

どこが間違っているのか教えてください。

ありがとう。

4

4 に答える 4

2

コードを更新しましたが、今はうまくいきます。captcha ライブラリで is_valid プロパティを public にしてから、置き換えました

if($resp->is_valid)

if($this->recaptcha->is_valid)

今ではうまくいきます。

私の質問に答えてくれたすべての人に感謝します。

于 2013-11-04T12:00:25.103 に答える
1

ここでも最初のパラメーターとして秘密鍵を提供する必要があります。

$resp = $this->recaptcha->recaptcha_check_answer ($private_key,  $this->input->ip_address(), $this->input->post('recaptcha_challenge_field',true), $this->input->post('recaptcha_response_field',true));
echo "<pre>";print_r($resp);die; #check the response array.
于 2013-11-04T11:48:13.480 に答える