2017-07-28 2 views
0

私のプロジェクトにhttps://github.com/appleboy/CodeIgniter-reCAPTCHAライブラリを使用しています。私はcodeignitorのgoogle recaptchaにエラーメッセージを追加する

$this->form_validation->set_rules('txtPassword', 'Password', 'trim|required|min_length[6]'); 
$this->form_validation->set_message('min_length', '%s: should have %s characters'); 

が、reCAPTCHAの中に名前のない...私はこのように設定された他のフィールドの

... reCAPTCHAのは、入力されたか、または無効reCAPTCHAのいないときに私のフォームにエラーメッセージを追加したいです...ので、どのように検証が失敗したときに検証エラーを表示するには考え...ドキュメントで述べたように

答えて

2

は、

$recaptcha = $this->input->post('g-recaptcha-response'); 
$response = $this->recaptcha->verifyResponse($recaptcha); 

$responseパラメータは、Eませんそれは返信trueまたはfalseです。 codeigniter documentation

のいずれかを使用することができます。また、コードシグネチャのフォーム検証に固執したい場合は、ここで説明します。

$this->form_validation->set_rules('g-recaptcha-response', 'recaptcha validation', 'required|callback_validate_captcha'); 
$this->form_validation->set_message('validate_captcha', 'Please check the the captcha form'); 

あなたは、のfile_get_contentsのキャプチャAPIへの呼び出しと、それに基づいてtrueまたはfalseを返しますようになります方法のvalidate_captchaを作成する必要があります。

function validate_captcha() { 
    $captcha = $this->input->post('g-recaptcha-response'); 
    $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=your secret key here &response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']); 
    if ($response . 'success' == false) { 
     return FALSE; 
    } else { 
     return TRUE; 
    } 
} 

希望します。

関連する問題