php - 注销代码点火器

标签 php codeigniter

我在 codeigniter 中有一个注销 Controller :

<?php

class Logout extends MY_Controller {

    function index()
    {

        $this->session->sess_destroy();
        redirect('index.php');
    }
}

这会让我退出,但是当我在登录后调用另一个 Controller 时,比如“/site/addnewpost”, 这只是让我再次登录,就好像 sassion 之前没有被破坏过一样。为什么会这样?

最佳答案

遵循 ALex 的建议,但使用 CI 代码:)。我的意思是,尝试单独取消设置每个 session 数据。我读过一次关于版本 2.0.3 中的一个问题,我想,但我现在不记得了,我也没有时间搜索引用。不过,它在他们的论坛中,建议是相同的:逐个取消设置每个 session 元素。

$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 的 session 只是 cookie,而不是 native php session 数组。

另一件事...确保错误不在您的登录方法中,无论您是否成功注销,它都会让您登录!

关于php - 注销代码点火器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8616887/

相关文章:

php - 如何在 php 中用空格替换所有非字母数字字符?

php - Codeigniter 事件记录 : adding a dynamic variable to result name

php - 统计同一个表的某个状态列出现的频率

php - 在 Codeigniter 的库中加载 View 页面

php - CI 基本 URL 路由

javascript - 代码点火器 : echo folder path using php in javascript file

php - 如何使用 PHP 和 MySQL 对评论进行编号

php - codeigniter 查询 Controller View

php - 关于 CodeIgniter 与 Javascript 和 AJAX 的一些问题

php - 使用 CodeIgniter 将上传图片字段添加到注册表单