看看这段代码:
$this->session->set_flashdata('prev_page', $this->uri->uri_string());
echo $this->uri->uri_string();
echo $this->session->flashdata('prev_page');
访问mywebsite/index.php/home/
echo $this->uri->uri_string();
打印home
echo $this->session->flashdata('prev_page');
打印home/picktype
,这是同一控制器中完全不同的功能!
控制器的功能有问题:
class Home extends MY_Controller {
function __construct()
{
parent::__construct();
}
public function index()
{
if($this->input->cookie('disclaimer_seen_token'))
{
$this->load->view('home');
} else {
redirect('disclaimer');
}
}
public function picktype()
{
$this->load->view('picktype');
}
}
为什么会发生这种情况?
答案 0 :(得分:1)
在您将“重定向”回到另一个页面之前,您的flashdata尚未更新。
因此,您的$this->session->flashdata('prev_page')
是重定向之前的最后一页。
CodeIgniter支持“flashdata”或仅适用于下一个服务器请求的会话数据,然后自动清除