我在CI中使用set_flashdata时遇到问题。
控制器:
if($var == true) {
// some action here
$this->session->set_flashdata('success', 'Success');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('fail', 'Error');
redirect($_SERVER['HTTP_REFERER']);
}
视图:
<?php if (isset($_SESSION['fail'])): ?>
<p class="text-danger"><?php echo $_SESSION['fail'] ?></p>
<?php if (isset($_SESSION['success'])): ?>
<p class="text-success"><?php echo $_SESSION['success'] ?></p>
无论如何,我都没有看到任何消息。用var_dump($this->session->flashdata('success'));
试过
如何解决此问题?
有什么想法吗?
谢谢。
首先,
我会确保您已正确初始化所有内容($this->load->library('session');
(,并在配置文件中设置了加密密钥。
其次,Codeigniter不使用PHP的原生$_SESSION
,他们实现了自己的。所以你不应该测试它是否设置了<?php if (isset($_SESSION['fail'])): ?>
我会尝试这样的事情:
<?php if(isset($this->session->flashdata('fail'))): ?>
<p class="text-danger"><?php echo $this->session->flashdata('fail'); ?></p>