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

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

更新

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

function login ($username,$password)

    {
        $this->db->where('username',$username);
        $this->db->where('password',$password);

        $query = $this->db->get('users');

        if ($query->num_rows()>0)

        {
            foreach ($query->result() as $rows)
            {
                $data = array(

                    'user_name' => $rows->username,'logged_in' => TRUE,'validated' => true
                );
            }

                $this->session->set_userdata($data);
                //$user = $rows->username;
                //$this->session->set_userdata('user_name',$user);

                return true;
        }

        else

        {
            return false;
        }

    }

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

public function verification()

    {
        $username = $this->input->post('username');
        $password = $this->input->post('password');


        $result = $this->site_model->login($username,$password);


        //$result = $this->session->set_userdata('validated');

        if ($result)
        {
            //$this->admin();
            //$this->session->set_userdata('login_state',TRUE);

            redirect ('site/index');

        }
        else
        {

            redirect ('site/login');
            //$this->load->view('login');
        }
    }

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

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

<?PHP if ($this->session->userdata('user_name') != "") { ?>

.....
首先在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相关文章