我有笨注销控制器:注销笨
<?php
class Logout extends MY_Controller {
function index()
{
$this->session->sess_destroy();
redirect('index.php');
}
}
这将记录我出去,但是当我打电话登录后另一个控制器,如“/网站/ addnewpost”, 这只是记录我再次,作为如果激情尚未被破坏。这是为什么发生?
我有笨注销控制器:注销笨
<?php
class Logout extends MY_Controller {
function index()
{
$this->session->sess_destroy();
redirect('index.php');
}
}
这将记录我出去,但是当我打电话登录后另一个控制器,如“/网站/ addnewpost”, 这只是记录我再次,作为如果激情尚未被破坏。这是为什么发生?
关注Alex的建议,但使用CI代码:)。我的意思是,尝试单独取消设置每个会话数据。我认为在2.0.3版本中我曾经读过一篇关于这个问题的文章,但现在我不记得了,我也没有时间去搜索参考文献。不过在他们的论坛上,建议是一样的:逐个取消每个会话元素。
$this->session->unset_userdata('data_one');
$this->session->unset_userdata('data_two');
$this->session->unset_userdata('data_three');
$this->session->unset_userdata('data_one');
$this->session->sess_destroy();
redirect('home','refresh'); // <!-- note that
//you should specify the controller(/method) name here
您需要重定向,因为CI的会话都只是饼干,而不是本机PHP会话阵列。
另一件事...确保错误不在您的登录方法中,无论您是否成功注销,它都会记录您的登录方法!
工作人员谢谢你! – 2011-12-23 21:43:29
尽量明确删除项目是这样的:
$this->Session->delete('User');
$this->Session->destroy();
$this->Cookie->delete("User");
$this->Cookie->destroy();
$this->Auth->logout();
$this->redirect('whereever');
我的问题与服务器端的缓存有关。我可以修复它是通过附加随机文本为退出链接的最快捷:
<?php
$this->load->helper('string');
echo anchor('/home/logout/'.random_string(), 'logout');
?>
家/注销包含相同的代码中的问题function index
。
就这样你知道redirect('/', 'refresh')
对我不起作用,但我再次做了一个快速测试。
我猜测random_string()
方法可以通过输出强制高速缓存被清除的头来替代。正如你可能猜到的那样,现在我无法做到这一点,因为我超级忙。也许以后。
您也可以尝试手动设置您的“logged_in”或您称为会话的任何内容为false。然后,销毁所有其他会话数据。
$this->session->set_userdata('logged_in', FALSE);
$this->session->session_destroy();
redirect('index');
首先,我们必须加载会话库来处理会话,而不是取消设置会话ID并销毁会话。我正在使用此代码来取消我的会话和安全注销。
$this->load->library('session');
$this->session->set_userdata('user_id', FALSE);
$this->session->sess_destroy();
$this->load->view('your URL');
请不要发布代码的答案。包括你已经改变的一些解释,它为什么起作用等等。 – 2017-06-29 02:32:41
删除重定向。创建另一个仅包含'var_dump($ _ SESSION)'的脚本,并在注销后调用该脚本以检查会话是否被销毁 – xbonez 2011-12-23 13:59:19
什么是您的登录部分? (其中你检查会话) – ALH 2011-12-23 14:00:49
@xbonez - 纠正我,如果我在这里错了,但我认为CodeIgniter不使用本机PHP会话。 – Tyil 2011-12-23 15:19:27