Codeigniterフレームワークでログイン/ログアウトページを設計しようとしています。問題は、Webページからログアウトすると、ログインページにリダイレクトされることです。戻ると、次のようなページが表示されます。
ドキュメントの有効期限が切れました
This document is no longer available.
しかし、このページを更新すると、システムに再度ログインします(o.O)
次のコードには、コンストラクターとログアウト機能が含まれています。完璧なログインログアウトページのデザインを手伝ってください
function __construct()
{
parent::__construct();
$this->load->model('user_model');
$this->output->set_header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->output->set_header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
}
function logout()
{
$newdata = array(
'user_name' =>'',
'user_email' => '',
'logged_in' => FALSE,
);
$this->session->unset_userdata($newdata);
$this->session->sess_destroy();
redirect('default_controller','refresh');
}
適切なログアウト方法を見つけようとしましたが、見つかりません。
単純にこのようになるようにしてください
function logout()
{
$user_data = $this->session->all_userdata();
foreach ($user_data as $key => $value) {
if ($key != 'session_id' && $key != 'ip_address' && $key != 'user_agent' && $key != 'last_activity') {
$this->session->unset_userdata($key);
}
}
$this->session->sess_destroy();
redirect('default_controller');
}
この行を使用する必要はありません
$ this-> session-> sess_destroy();
public function Logout()
{
$this->session->sess_destroy();
redirect('login');
}
/** Here ('login') is controller class .
In view ('logout-page'):-**/
<a href="home/logout">Logout</a>