【发布时间】:2013-11-08 06:26:19
【问题描述】:
我正在使用 CodeIgniter。
登录会员后,点击退出后,仍然可以查看会员页面 我单击“返回”按钮。
问题 有谁知道,如果用户退出了,即使点击返回按钮也无法访问会员页面?
请看下面我的代码..
谢谢..
class Site extends CI_Controller{
function index()
{
if(!isset($this->session->userdata['is_loggged_in']))
$this->login();
else
$this->_template();
}
function login()
{
$data['main_content'] = 'login_form';
$data['page_title'] = 'Login - php';
$this->load->view('include/template' , $data);
}
function validate()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username' , 'Username' , 'trim|required' );
$this->form_validation->set_rules('password' , 'Password' , 'trim|required' );
if($this->form_validation->run() == FALSE)
{
$this->login();
}
else
{
$this->load->model('member_model' , 'member');
$query = $this->member->checklogin();
//login successful , make sure no duplicate entry during registration
if($query->num_rows() == 1)
{
$data = array(
'is_loggged_in' => TRUE ,
'username' => $this->input->post('username'),
);
$this->session->set_userdata($data);
$this->_template();
}
else
{
$data = array(
'main_content' => 'login_form' ,
'page_title' => 'Error login' ,
'page_error' => 'Invalid Username or password. '
);
$this->load->view('include/template' , $data);
}
}
}
function _template()
{
$data = array(
'main_content' => 'include/default_inc',
'page_title' => 'Welcome home ran'
);
$this->load->view('include/template' , $data);
}
function logout()
{
$this->session->sess_destroy();
redirect('site/login');
exit;
}
}
/* end of controller site */
【问题讨论】:
-
在单击注销后检查您的会话是否被破坏。此外,在每个页面中添加一个检查是否设置了会话,否则重定向到登录
-
验证 $_SESSION 的状态以确认它正在被销毁。您可以使用 print_r($_SESSION)。
-
Portu,CI 不使用 $_SESSION 变量。
-
@Fibbe 感谢您的提醒,我没有机会与 CI 合作,因此非常感谢您的意见。我认为这只是检查会话状态的问题,但看起来幕后不仅仅是一个 $_SESSION 变量。
-
单击
back按钮不会重新加载页面。无论您如何退出,您仍然可以访问上一页。但是,如果您刷新/重新加载页面,您将被带到登录页面
标签: php codeigniter