我使用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检查结果,这是回应不工作。请让我知道我的错误在哪里?
提前感谢
答案 0 :(得分:2)
我认为问题在于这个陈述
$rest = $this->session->set_userdata($sess);
set_userdata()
不会返回任何内容,因此根据您的情况,它将始终执行else部分。
尝试改变你的状况
if (!empty($this->session->userdata("username"))){
echo "Working";
}else{
echo "Not Working";
}