使用codeigniter在会话中重新访问某些数据存储

时间:2017-09-13 09:59:27

标签: ajax codeigniter session

我需要存储一些通过方法上的ajax请求获得的数据,然后在我调用另一种方法时将其检索出来。

public function updateInt()
{  $this->load->library('session');
   $interval = $this->input->post('_interval');
   $aInt = array('my_interval' => $interval);
   $this->session->set_userdata('post', $aInt);
   $_interval_ = $this->session->userdata['post']['my_interval'];
   return $_interval_;
} 



 public function getInt()
   {
       $interval = $this->updateInt();
       // print $interval and do some stuff !!
   }

//返回null,但是我需要用户在前端设置的值,并通过对updateInt()方法的ajax调用传递。 我需要一些帮助,因为我是codeignter的新手。

1 个答案:

答案 0 :(得分:1)

确保您已在config.php中设置会话,不要将会话保存路径保留为空

实施例

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

确保会话文件夹权限0700

确保您获得正确的帖子数据

public function updateInt()
{  
    // You can autoload it in config/autoload.php saves loading every page
    $this->load->library('session');

    $aInt = array('my_interval' => $this->input->post('_interval'));

    $this->session->set_userdata('post', $aInt);

    // Use `(` and `)` not `[]`
    $interval = $this->session->userdata('post');

   return $interval;
} 



public function getInt()
{
   $interval = $this->updateInt();

   // Test
   echo $interval['my_interval'];

   // print $interval and do some stuff !!
}