codeigniter会话不起作用

时间:2013-06-03 04:39:18

标签: php codeigniter session pagination

我正在使用codeigniter 我想通过查询来显示从数据库中获取的一些数据。

$this->db->where('sex !=', $iam);
  $this->db->where('sex', $searching_for);
  $this->db->where('Age >=' , $age_from);
  $this->db->where('Age <=' , $age_to);
 if($Province != 1){
     $this->db->where('Province' , $Province);
 }

        $this->db->limit($limit, $start);
        $query = $this->db->get("members");
        return $query->result_array();

$iam,$searching_for, $age, $age_to由用户提供,我使用会话数组从conttroller文件传递它们。

    $search_info=array(
    'iam'           =>  $this->input->post('iam'),
    'searching_for' =>  $this->input->post('searching_for'),
    'age_from'      =>  $this->input->post('age_from'),
    'age_to'        =>  $this->input->post('age_to'),
    'country'       =>  $this->input->post('country'),
    'Province'      =>  $this->input->post('Province')
);

$this->session->set_userdata(array("search_info" => $search_info));

我的分页功能也在控制器文件中,就像这样

public function pagination(){
        $this->load->library("pagination");
        $config = array();
    $config["base_url"] = base_url() . "controller_search/index";

    $this->load->model('models_search');
    $config["total_rows"] = $this->models_search->search();

    $config["per_page"] = 1;
    $config["uri_segment"] = 3;
    $this->pagination->initialize($config);
    //$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;3
    //echo $this->uri->segment(3);
    //echo ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;3;
    $page = $this->uri->segment(3);
    $data["search_result"] = $this->models_search->fetch_categories($config["per_page"], $page);
    $data["links"] = $this->pagination->create_links();
    $data['error'] = '';
    $this->load->view('home_header.php');
    $this->load->view('search/search_result',$data);
}

但问题是,当我点击页面编号时,它没有显示任何内容,我尝试在查询中评论所有线索,然后它工作。
所以我认为错误是在会话数组和我尝试var_dump session_all,然后显示array(0){}

在这种情况下,有人可以帮助我吗?

5 个答案:

答案 0 :(得分:1)

我认为你正在以错误的方式访问会话数组。

而不是

$iam 

使用

$this->session->userdata('iam');

或者

$this->session->userdata('$iam');

无论你的情况如何......

答案 1 :(得分:1)

使用此代码:

$this->session->set_userdata("search_info" => $search_info);

设置会话的代码

答案 2 :(得分:1)

使用以下代码设置会话数据:

$this->session->set_userdata("sess_data", "mydata");

通过以下代码回复此会话数据:

$this->session->userdata("sess_data");

答案 3 :(得分:0)

我只是将所有发布的值都带到了index函数中的变量,然后我将它们作为

放入会话数组中
 $search_info=array(
            'iam'           =>  $iam,
            'searching_for' =>  $searching_for,
            'age_from'      =>  $age_from,
            'age_to'        =>  $age_to,
            'country'       =>  $country,
            'Province'      =>  $Province
        );

       $this->session->set_userdata(array("search_info" => $search_info)); 

然后我将其重定向到分页功能。然后它工作得很整齐。在我向页面移动时覆盖帖子项和会话数组之前。现在因为重定向它被停止了。我认为。现在任何方式都很好 比你每个人都帮助我。 特别是Mr.John Blake先生,非常感谢你。

答案 4 :(得分:0)

检查你是否加载了会话库。如果没有加载你的控制器

$this->load->library('session')

或者您可以在config / autoload.php库中自动加载会话