嗨,伙计们,我正在尝试在我的 codigniter 中使用注销代码,因此由于某种原因它无法正常工作。
这是我的注销代码:
public function Logout() {
$this->Login_model->saveLogout();
$this->session->sess_destroy();
redirect('Login');
}
这是我的模型代码:
public function saveLogout() {
$recordId=$this->session->userdata('user_id');
$ipaddress = $this->input->ip_address();
$dataLog = array(
'userid' => $recordId,
'entertime' => time(),
'ip' => $ipaddress,
'log_operation' => 'Logout'
);
$dataUser = array(
'previous_visit' => time(),
'lastip' => $ipaddress
);
$this->db->insert('log_table', $dataLog);
$this->db->set($dataUser); //value that used to update column
$this->db->where('id', $recordId); //which row want to upgrade
$this->db->update('users'); //table name
}
当我单击注销时,它显示以下错误
Column 'userid' cannot be null
INSERT INTO `log_table` (`userid`, `entertime`, `ip`, `log_operation`) VALUES (NULL, 1534252667, '::1', 'Logout')
谁能帮我什么问题
提前谢谢。
当你在没有任何条件的情况下编写$this->session->sess_destroy();
时,它会在执行其他之前销毁会话。与已发送的标头相同
像这样做
在控制器中
public function Logout() {
$return = $this->Login_model->saveLogout(); # alter
if(!$return)
{
echo "went wong"; die;
}
else
{
$this->session->sess_destroy();
redirect('Login');
}
}
在模型中
public function saveLogout() {
# your model code
return true; # add this
}