Php 为什么Codeigniter set_flashdata()插入错误信息?
请看以下代码:Php 为什么Codeigniter set_flashdata()插入错误信息?,php,codeigniter,session,uri,Php,Codeigniter,Session,Uri,请看以下代码: $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()打印主页 echo$this-
$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()代码>打印主页
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');
}
}
为什么会发生这种情况?在“重定向”到另一个页面之前,您的flashdata尚未更新
因此,您的$this->session->flashdata('prev_page')
是重定向之前的最后一页
CodeIgniter支持“flashdata”或会话数据,这些数据只可用于下一次服务器请求,然后自动清除我知道这一点。我不断刷新主页。输出总是相同的。但是您从哪里“刷新”主页?i、 e.主页是否自行进行重定向,从而导致flashdata循环?flashdata没有循环。我从浏览器刷新-在刷新页面和更新值后,所有其他页面调用(我的主控制器中有很多)都会回显uri字符串和与flashdata相同的uri字符串。只有索引函数的行为异常。