我新到CI和懷疑即將CI控制器,我有一個網頁控制器,其是一個索引,並使用加載頁眉,頁腳,並在視圖中的所有的頁面,如以下:笨負載的captcha控制器插入索引控制器
class Pages extends CI_Controller{
function __construct() {
parent::__construct();
$this->load->helper(array('url', 'form', 'captcha'));
$this->load->model('getdb');
$this->load->library('javascript');
$this->load->library('session');
}
public function index($page='home'){
if(!file_exists('application/views/pages/'.$page.'.php')){
show_404();
}
$data['title'] = ucfirst($page);
$data['sitename'] = $this->config->item('site_name');
$data['library_src'] = $this->jquery->script();
$data['script_head'] = $this->jquery->_compile();
$data['results'] = $this->getdb->getAll();
$this->load->view('templates/header', $data);
$this->load->view('inc/mainmenu', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('pages/sidebar', $data);
$this->load->view('templates/footer', $data);
}
}
然後我建了一個登記表是使用驗證碼庫的形式,我發現下面的驗證碼控制器的樣品:
class Captcha extends CI_Controller {
public function index()
{
$this->load->library('session');
$this->load->helper(array('captcha','url'));
if ($this->input->post() && ($this->input->post('secutity_code') == $this->session->userdata('mycaptcha'))) {
$this->load->view('process.php');
}
else
{
$this->load->helper('captcha');
$vals = array(
'img_path' => './assets/captcha/',
'img_url' => base_url().'captcha/',
'font_path' => './assets/styles/fonts/MyriadPro-Semibold.ttf',
'img_width' => '200',
'img_height' => '30',
'expiration' => 3600
);
$cap = create_captcha($vals);
$data['image'] = $cap['image'];
$this->session->set_userdata('mycaptcha', $cap['word']);
$this->load->view('pages/register.php', $data);
}
}
}
這裏是我的看法命名register.php:
<div id="content-wrap">
<form method="post" action="<?php echo base_url()?>">
<p><?php echo $image ?></p>
<p>Security: <input type="text" name="secutity_code"></p>
<p><input type="submit" name="submit" value="submit" /></p>
</form>
</div>
我的問題是,我怎麼能使Captcha控制器加載到Pages控制器中,以便在我調用url http://site.com/ci/register
頁面時處理函數?目前該頁面將顯示如下錯誤:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: image
Filename: pages/register.php
Line Number: 65
請指教,謝謝。
哪個控制器是你叫 '頁數' 和 '驗證碼' ??? –
@Kanishka Panamaldeniya,默認情況下我稱爲Pages控制器,似乎Captcha控制器根本不會調用,無論何時我去url http:// site.com/ci/register',變量'$ data ['image' ]'不能通過查看。 – conmen
yes當你調用pages controller時,你沒有調用captha控制器 –