0

看看这段代码:

$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');
}

}

为什么会发生这种情况?

4

1 回答 1

1

在您“重定向”回另一个页面之前,您的 flashdata 尚未更新。

因此,您 $this->session->flashdata('prev_page')是重定向前的最后一页。

文档特别指出:

CodeIgniter 支持“flashdata”,即仅可用于下一个服务器请求的会话数据,然后自动清除

于 2013-07-16T13:13:36.200 回答