这是在控制器中
class LandingPage extends CI_Controller {
public function startEncryptedSession(){
$this->load->library('session');
$this->load->library('encrypt');
$this->load->view('index', array('session', $this->session));
}
}
如何在视图index
中加载此
view
代码
<?php echo $head; ?>
<body>
<?php echo $guts; ?>
</body>
<?php echo $foot; ?>
<?php echo $session->userdata('session_key'); ?>
我正在使用代码点火器MVC
当我加载视图时,它会给我:
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined variable: session</p>
<p>Filename: views/index.php</p>
<p>Line Number: 8</p>
</div><br />
<b>Fatal error</b>: Call to a member function userdata() on a non-object
您需要将要使用的变量传递到视图中。类似这样的东西:
单向:
在您的控制器中:
public function startEncryptedSession(){
$this->load->library('session');
$this->load->library('encrypt');
$data = array('session_key' => $this->session->userdata('session_key'));
$this->load->view('index', $data);
}
在您看来:
<?php echo $session_key; ?>
另一种方式:
在您的控制器中:
public function startEncryptedSession(){
$this->load->library('session');
$this->load->library('encrypt');
$data = array('session' => $this->session->all_userdata());
$this->load->view('index', $data);
}
在您看来:
<?php echo $session['session_key']; ?>
建议一下:CodeIgniter的会话类有点糟糕,因为它将数据存储在cookie上,并且数据大小限制非常低(或者至少我上次检查时是这样)。。。因此,您可能希望使用PHP的默认会话函数或创建自己的类来处理它。但我会让你检查一下,因为这不是你想要的。