【发布时间】:2011-07-31 23:14:54
【问题描述】:
我正在尝试让我的注册页面显示验证码。我有一个注册控制器和一个注册视图。
这是我的控制器索引方法:
public function index()
{
$this->load->helper('captcha');
$cap = create_captcha(array(
'img_path' => './captcha/',
'img_url' => 'http://localhost/captcha/',
'img_width' => 150,
'img_height' => 40
));
$data = array(
'captcha_time' => $cap['time'],
'ip_address' => $this->input->ip_address(),
'word' => $cap['word']
);
$query = $this->db->insert_string('captcha', $data);
$this->db->query($query);
$this->load->view('header');
$this->load->view('register', $cap);
$this->load->view('footer');
}
以及我的注册视图中的相关位 (register.php):
<h3>Security question</h3>
<li>
<label for="captcha">Enter the CAPTCHA code below</label>
<?php echo $cap['image']; ?>
</li>
问题是,我收到了这个错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: cap
Filename: views/register.php
Line Number: 35
查看用户指南后,我从控制器传递到视图的数据似乎需要是数组或对象,而我做我想做的唯一方法是在我的验证码生成代码查看文件,它似乎并没有真正遵循 MVC 模式,是吗?
有人有什么建议吗?
【问题讨论】:
-
我不知道codeigniter,但是从你写的来看,你不能只做
$this->load->view('register', array('cap'=>$cap));吗?然后你传递一个带有命名值的数组(我怀疑这是视图方法想要的) -
我已经尝试过了,我仍然收到
Undefined variable: cap错误。 -
如果您有答案,请将其发布为答案并将其标记为已回答
-
stackoverflow.com/questions/10571804/… 检查可能会有所帮助
标签: php codeigniter captcha