Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么Codeigniter set_flashdata()插入错误信息?_Php_Codeigniter_Session_Uri - Fatal编程技术网

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字符串。只有索引函数的行为异常。