我試圖讓我的註冊頁面顯示驗證碼。我有一個註冊控制器和一個註冊視圖。使用CodeIgniter創建驗證碼
這裏是我的控制器指數方法:
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 ( '帽'=> $帽));'?然後你傳遞一個具有命名值的數組(我懷疑這是查看方法想要的) – Flambino
我已經嘗試過了,我仍然收到'Undefined variable:cap'錯誤。 – Josh
如果您有答案,請將其作爲答案張貼並標記爲答案 – mattumotu