2010-08-30 33 views
0

我正在使用CodeIgniter reCAPTCHA库(here,论坛here)。出于某种原因,没有变量从reCAPTCHA库传递到具有reCAPTCHA字段代码的视图。无法使用CodeIgniter中的reCAPTCHA工作

这里是我的控制器(相关部分):

$this->load->library('recaptcha'); 
$this->load->library('form_validation'); 
$this->lang->load('recaptcha'); 

// Validate form 
... 
$this->form_validation->set_rules('recaptcha_response_field','Captcha','required|callback_captcha_check'); 

我已经试过加载视场为一个变量:

$data['recaptcha'] = $this->load->view('recaptcha',$data,true); 

我的主视图中:

<?php $this->load->view('recaptcha');?> 

这是本页的编码本:

<script type="text/javascript"> 
    var RecaptchaOptions = { 
    theme:"<?= $theme ?>", 
    lang:"<?= $lang ?>" 
    }; 
</script> 
<script type="text/javascript" src="<?= $server ?>/challenge?k=<?= $key.$errorpart ?>"></script> 
<noscript> 
     <iframe src="<?= $server ?>/noscript?lang=<?= $lang ?>&k=<?= $key.$errorpart ?>" height="300" width="500" frameborder="0"></iframe><br/> 
     <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> 
     <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> 
</noscript> 

该库可以通过上面的链接找到,但我认为它只是默认的reCAPTCHA PHP库的包装。

当我访问注册表单时,页面加载,但reCAPTCHA小部件不显示,因为它会为每个变量抛出一个错误 - 所有都是未定义的。

我确定这是关于从库加载变量到视图的基本内容。有人可以帮我吗?

+1

当您将数据传递到视图 - $ this-> load-> view('recaptcha',$ data,true); 或 $ this-> load-> view('recaptcha',$ data); 您是否在之前设置了$ data数组的元素? 即 $ data ['theme'] ='xyz'; $ data ['lang'] ='..'; 等? 我在代码中看不到。 – someoneinomaha 2010-08-30 21:29:37

+0

我不知道如何从库中分配变量。我可以将它们作为常规变量引用,还是需要以某种方式引用库对象?例如,变量$ lang是在库中定义的;我可以设置$ data ['lang'] = $ lang? – tchaymore 2010-08-30 21:38:40

+0

查看用户指南。 http://codeigniter.com/user_guide/libraries/language.html这将向您展示如何从语言课程中提取文本。 – someoneinomaha 2010-08-31 03:03:58

回答