会话数据尚未访问

时间:2012-05-12 11:56:40

标签: php codeigniter session

我试图在产品控制器下的product_edit方法中填充已删除的按摩会话变量,如下所示: -

$_SESSION['msg']="Record has been deleted successfully." 然后我将重定向到列表页面,如下所示: - redirect('allinone/product_list'); 然后我在列表页面上显示按摩,如下所示: -

<?php if(isset($_SESSION['msg'])){?>
<tr>
  <td colspan='8' align="center" class="error_td"> 
  <?php echo $_SESSION['msg'];
        unset($_SESSION['msg']);?> </td>
</tr>
<?php }  ?>

但会话按摩不会在列表页面上回显。我无法弄清楚我的代码中遗漏了什么? 有人可以看看吗?

我认为新会话已在每个导航中创建。

我是codeignitor框架的新手。

非常感谢任何帮助。非常感谢。

2 个答案:

答案 0 :(得分:1)

Coeignitor Session类不使用本机PHP会话。它生成自己的会话数据 在你的product_edit方法上添加它你可以访问会话变量,如

$this->load->library('session');

会话变量可以通过

设置
$this->session->set_userdata('message', 'hello world');

可以通过

检索会话变量
$msg = $this->session->userdata('message');

在您的视图中,您可以使用类似

的会话
<?php if($this->session->userdata('message')){?>
<tr>
  <td colspan='8' align="center" class="error_td"> 
  <?php echo $this->session->userdata('message');
        $this->session->unset_userdata('message');     ?> </td>
</tr>
<?php }  ?>

答案 1 :(得分:0)

您应该使用set_userdata($userdata);在Codeigniter中设置会话。例如:

$this->load->library('session'); // loading session library

$userdata= array(
   'msg'  => 'Record has been deleted successfully.'
);

$this->session->set_userdata($userdata); // set session

$user_data = $this->session->userdata  // get session

有关Codeigniter会话的更多信息,请访问:http://codeigniter.com/user_guide/libraries/sessions.html