我正在使用CodeIgniter。 我正在登录页面上。登录没有问题。我在登录会话时遇到问题。
我设置了是否没有登录会话,那么它将在登录页面上重定向,或者在仪表板页面上重定向。
现在,我尝试使用以下代码,但无法正常工作。我收到错误消息:“消息:未定义索引:login_session”
我做的是,我登录了门户(现在我在仪表板页面上),然后仅复制URL并将其粘贴到下一个选项卡上。因此它向我显示了我的仪表板页面正确。现在,我从第二个选项卡注销,然后刷新第一个选项卡,然后显示Undefined index: login_session
。因此,根据第一个选项卡,还可以在登录页面上重定向。对吗?
有时我也在门户网站上,几秒钟后我就退出会话。
public function index()
{
$this->checkLogin();
}
public function checkLogin(){
if(!($this->session->userdata('login_session')))
{
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('customer_id', 'Username', 'trim|required|min_length[12]');
$this->form_validation->set_rules('member_password', 'Password', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('member/login');
}
else
{
$custid = $this->input->post('customer_id');
$password = $this->input->post('member_password');
$result=$this->Member_model->check_password($custid,$password);//varifying password
if ($result) {
//creating session
$login_emp_session = array('firstname' => $result->first_name,'lastname' => $result->last_name);
$this->session->set_userdata('login_session',$login_emp_session);//set the session
redirect("Member_controller/dashboard");
}
else{
$this->session->set_flashdata('invalid_password', 'Invalid username and password');
$this->load->view('member/login');
//echo "wrong details";
}
}
}
else
{
//echo "Already";
redirect("Member_controller/dashboard");//calling employee register
}
}
注销代码
function logout()
{
$this->session->unset_userdata('login_session');
$this->session->sess_destroy();
redirect('Member_controller/index');
}
答案 0 :(得分:0)
从第二个选项卡注销时,这意味着您从浏览器中破坏了登录会话。这就是为什么刷新时在第一个选项卡上显示该错误的原因。为避免该错误,请使用:
if(!$this->session->userdata('login_session'))
{
redirect to login
}
//Dashboard
已更新:
public function index()
{
if(!$this->session->userdata('login_session'))
{
$this->checkLogin();
}
else
{
redirect("Member_controller/dashboard");//calling employee
}
}
public function checkLogin()
{
if($this->input->server('REQUEST_METHOD')=='POST')
{
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('customer_id', 'Username', 'trim|required|min_length[12]');
$this->form_validation->set_rules('member_password', 'Password', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('member/login');
}
else
{
$custid = $this->input->post('customer_id');
$password = $this->input->post('member_password');
$result=$this->Member_model->check_password($custid,$password);//varifying password
if ($result)
{
$login_emp_session = array('firstname' => $result->first_name,'lastname' => $result->last_name);
$this->session->set_userdata('login_session',$login_emp_session);//set the session
redirect("Member_controller/dashboard");
}
else
{
$this->session->set_flashdata('invalid_password', 'Invalid username and password');
$this->load->view('member/login');
}
}
}
else
{
$this->load->view('member/login');
}
}