我试图在同一控制器中将flashdata和userdata的值从一个函数获取到另一个函数。似乎我在功能A中使用重定向到功能B。因此,当功能加载时,它不读取值并变为Null。我使用了var_dump()和print_r,但是值是null。请找到我的示例代码,如下所示:-
控制器:Sample.php
我在一开始就声明了会话库
$this->load->library('session');
尝试使用$this->session->userdata
public function A {
$city = $this->input->post('Ucity');
$depart = $this->input->post('Udepartment');
$this->session->set_userdata('City',$city);
$this->session->set_userdata('Department',$depart);
//I guess the issue is coming overhere. When it redirects, it loses its values
redirect ('/Sample/B/');
}
public function B {
$getCity = $this->session->userdata('City');
$getDept = $this->session->userdata('Department');
if(isset($getCity)) {
$data['ct'] = $getCity;
$data['dt'] = $getDept;
$this->load->view(header);
$this->load->view(menu);
$this->load->view(fetchEmp, $data);
$this->load->view(footer);
}
else {
var_dump($getCity);
print_r($getCity);
}
}
尝试使用$this->session->flashdata
public function A {
$city = $this->input->post('Ucity');
$depart = $this->input->post('Udepartment');
$this->session->set_flashdata('City',$city);
$this->session->set_flashdata('Department',$depart);
$this->session->keep_flashdata('City');
$this->session->keep_flashdata('Department');
//I guess the issue is coming overhere. When it redirects, it loses its values
redirect ('/Sample/B/');
}
public function B {
$getCity = $this->session->flashdata('City');
$getDept = $this->session->flashdata('Department');
if(isset($getCity)) {
$data['ct'] = $getCity;
$data['dt'] = $getDept;
$this->load->view(header);
$this->load->view(menu);
$this->load->view(fetchEmp, $data);
$this->load->view(footer);
}
}
还有我的fetchEmp.php(视图)
<h1>City: <?php echo $ct .'and department: ' . $dt ?></h1>
我得到的输出是:NULL
答案 0 :(得分:1)
这很简单。 Flashdata只会存储您的值一次。如果刷新页面,它将丢失数据。如果不打算使用flashdata,则可以使用它,如果以后要使用,则只需使用userdata()。
步骤1:转到第314行的Session.php(在Systems / Library / Session中),其中说:
ini_set('session.use_trans_sid',0);
使用//
注释此行现在在同一文件中,转到第143行,其中显示:
session_start();
也请对此行进行注释。
现在打开您的控制器文件,并在第一行写上这一行:
session_start();
这首先需要放在controller.php文件中。
对我有用。