Codeigniter 2.2创建会话失败

时间:2014-12-29 11:42:15

标签: php codeigniter session codeigniter-2

我使用CI 2.2构建一个简单的登录系统。但是当我尝试生成会话时,我遇到了问题。当然我已经正确设置了库(数据库,会话)和User_M。当我从数据库中检索数据(没有会话)时,这很好。这是我的控制器代码:

public function verify()
{
    // Define variable
    $user = $this->input->post('username');
    $pass = $this->input->post('password');

    // Check input data
    if (!empty($user) AND !empty($pass))
    {
        // Check match data from db
        $checks = $this->User_M->check_user($user, $pass);

        if($checks->num_rows() == 1)
        {
            foreach ($checks->result() as $check)
            {
                $sess = array (
                    'username' => $check->username,
                    'logged_in' => TRUE
                );

                $rest = $this->session->set_userdata($sess);

                if ($rest)
                {
                    echo "working";
                } else {
                    echo "not working";
                }
            }
        } else {
            echo "Not found";
        }
    } else {
        echo "You've empty field";
    }
}

另外说明一下,我用if ($rest) ... bla..bla..bla检查结果,这是回应不工作。请让我知道我的错误在哪里?

提前感谢

1 个答案:

答案 0 :(得分:2)

我认为问题在于这个陈述

$rest = $this->session->set_userdata($sess);

set_userdata()不会返回任何内容,因此根据您的情况,它将始终执行else部分。

尝试改变你的状况

if (!empty($this->session->userdata("username"))){
   echo "Working";
}else{
   echo "Not Working";
}