Перепрошивка с CodeIgniter - PullRequest
       14

Перепрошивка с CodeIgniter

0 голосов
/ 09 июня 2011

Я пытаюсь реализовать recaptcha мою форму в CodeIgniter (без использования библиотеки recaptcha). Это работает нормально, однако, как и в моей форме, я отображаю ошибки каждого поля в отдельности, я хочу отобразить ошибку recaptcha рядом с ее местом в форме, кто-то может мне помочь, как я могу это сделать?

Код от моего контроллера:

    $this->form_validation->set_rules('name', 'Name', 'trim|required|min_length[3]|max_length[25]');
    $this->form_validation->set_rules('email', 'Email address', 'trim|required|valid_email');   

    //With above set_rules i'm able to display each fields errors next to it, 
    //How can i display following recaptcha error next to it.
        if (!$resp->is_valid)
        {
            //reCAPTCHA was entered incorrectly
            die (
            "The reCAPTCHA wasn entered incorrectly." .
            "(reCAPTCHA said: " . $resp->error . ")
            ");
        }
        else
        {
            //Successful verification
            die('Success!');
        }

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 09 июня 2011

Если вы не запускаете поле recaptcha через библиотеку проверки формы, вы не сможете использовать функцию form_error(), но вы можете легко отправить ошибку в ваше представление в виде переменной:

if ($this->form_validation->run())
{
    if ( ! $resp->is_valid)
    {
        $data['recaptcha_error'] = "reCAPTCHA said: ".$resp->error;
    }
    else
    {
        // Process form
    }
}
$this->load->view('my_view', $data);

Тогда, на ваш взгляд (где / как вы хотите):

<?php if (isset($recaptcha_error)): ?>
    <label class="error">
        <?php echo $recaptcha_error; ?>
    </label>
<?php endif; ?>
...