php – Codeigniter中的会话变量不工作

前端之家收集整理的这篇文章主要介绍了php – Codeigniter中的会话变量不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我已经在Codeigniter中创建了一个会话,我已经在我的模型中设置了会话变量.但是当我通过Controller调用session变量时设置会话变量值,会话变量值变为null.任何帮助?

更新

这是我设置我的会话变量的模型

  1. function login ($username,$password)
  2.  
  3. {
  4. $this->db->where('username',$username);
  5. $this->db->where('password',$password);
  6.  
  7. $query = $this->db->get('users');
  8.  
  9. if ($query->num_rows()>0)
  10.  
  11. {
  12. foreach ($query->result() as $rows)
  13. {
  14. $data = array(
  15.  
  16. 'user_name' => $rows->username,'logged_in' => TRUE,'validated' => true
  17. );
  18. }
  19.  
  20. $this->session->set_userdata($data);
  21. //$user = $rows->username;
  22. //$this->session->set_userdata('user_name',$user);
  23.  
  24. return true;
  25. }
  26.  
  27. else
  28.  
  29. {
  30. return false;
  31. }
  32.  
  33. }

这是我的控制器从哪里我重定向到视图

  1. public function verification()
  2.  
  3. {
  4. $username = $this->input->post('username');
  5. $password = $this->input->post('password');
  6.  
  7.  
  8. $result = $this->site_model->login($username,$password);
  9.  
  10.  
  11. //$result = $this->session->set_userdata('validated');
  12.  
  13. if ($result)
  14. {
  15. //$this->admin();
  16. //$this->session->set_userdata('login_state',TRUE);
  17.  
  18. redirect ('site/index');
  19.  
  20. }
  21. else
  22. {
  23.  
  24. redirect ('site/login');
  25. //$this->load->view('login');
  26. }
  27. }

我已经调用了session_start();在控制器中的construct()下;

这是我在视图中访问会话变量的方式

  1. <?PHP if ($this->session->userdata('user_name') != "") { ?>
  2.  
  3. .....
首先在CI中,您不需要在任何地方使用session_start().只能在config / autoload.PHP文件自动加载会话.

删除该session_start().
尝试使用flashdata. Flashdata是临时会话,主要用于您的类型的情况,我们需要将用户重定向到另一个页面显示一些成功或错误消息.

>设置flashdata:
$this-> session-> set_flashdata(‘item’,’value’);
>获取flashdata:
$这 – >会话而> flashdata( ‘项目’);

这是文档链接http://www.codeigniter.com/user_guide/libraries/sessions.html#flashdata

猜你在找的PHP相关文章