我正在尝试从 View 获取输入值到 Controller 并将此值保存为闪存数据以在另一个 Controller 中使用它。现在我可以存储值直到我重定向,但是一旦重定向,它就失去了它的值(value)。我不确定这里发生了什么。

  • 我需要再次查看我的配置吗?如果是,那么我需要看什么?
  • 我的两个功能都是正确的,但如果我遗漏了什么?

下面是我的代码:-

Controller.php

public function first() {  
 $testing = $this->input->post('fname'); 
 $this->session->set_flashdata('fstname', $testing); 
 $this->session->keep_flashdata('fstname'); 
 // echo $this->session->flashdata('fstname'); //able to get the flashdata value till here.  
 redirect('Home/second/'); //but when I am using this, flashdata loses its value 
} 
 
public function second() {  
 $data['getfname'] = $this->session->flashdata('fstname'); 
 $this->load->view('details', $data); 
} 

查看(details.php)

 <?php echo $getfname ?> 

输出

config.php

$config['sess_driver'] = 'files';  
$config['sess_cookie_name'] = 'ci_session';  
$config['sess_expiration'] = 7200;  
$config['sess_save_path'] = APPPATH . 'cache/sessions/';  
$config['sess_match_ip'] = FALSE;  
$config['sess_time_to_update'] = 300;  
$config['sess_regenerate_destroy'] = FALSE; 

autoload.php

$autoload['libraries']=array(); 

另外,我也尝试过使用 userdata() 但它在重定向后没有显示在第二个函数上。

感谢您的宝贵时间。

请您参考如下方法:

首先:

检查Post数据是否不为空

$testing = $this->input->post('fname'); 
var_dump($testing); 
exit; 

第二个:

你可以跳过 keep_flashdata,在那种情况下你不需要它

第三:

例如检查 config.php 中的 session 设置:

$config['sess_driver']          = 'database'; 
$config['sess_cookie_name']        = 'mysession'; 
$config['sess_expiration']         = 86400; 
$config['sess_save_path']          = 'sessions'; 
$config['sess_match_ip']           = TRUE; 
$config['sess_time_to_update']     = 300; 
$config['sess_regenerate_destroy'] = TRUE; 

检查autload.php: $autoload['libraries'] = array('session', [...]);

第四:

直接检查 session 闪存变量:

$strFstname = $this->session->flashdata('fstname'); 
die($strFstname); 

你的代码应该可以工作,我多次使用这样的 flashdata。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!