0

我正在尝试为我的网站实施注销程序。当用户单击退出按钮时,我将他重定向到以下home控制器脚本。

http : // mydomain/php/ci/index.php/index/?logout=set

在我的家庭控制器index功能中,我检查是否 logout=set 然后销毁所有会话。

    echo @$_GET['logout'];
    exit();
    if(@$_GET['logout'] == "set")
    {
        unset($_SESSION['userid']);
        @$_SESSION = array();
        @session_unset();
        @session_destroy();
    }

但是当我到达这里时,什么都没有打印出来,因为注销参数没有通过。当我点击退出按钮时,我看到以下网址。

http://localhost/php/ci/home/

为什么会这样?

4

2 回答 2

3

您可以像这样获取所有get数据CodeIgniter

var_dump($this->input->get());

但是,不要使用该index方法将用户注销,而是为其创建一个方法,例如:

class Users extends CI_Controller() {
    public function index() {
        // Index stuff here        
    }

    public function logout() {
        // Your check if a user is logged in, instead of the dirty @
        if(isSet($_SESSION['userid'])) {
            unset($_SESSION['userid']);
        }

        redirect();
    }
}

然后在您的视图中创建这样的链接:

site_url("users/logout");

您将需要为此使用 CodeIgniter 会话处理程序,但这只是解决您的问题的快速解决方案。我可以建议您阅读 CodeIgniter 手册。由于您的注销“解决方案”非常肮脏,不符合 MVC 原则

于 2012-10-29T09:54:57.560 回答
1

Codeigniter 具有已加载的默认 INPUT 类。检查它。

http://ellislab.com/codeigniter/user_guide/libraries/input.html

于 2012-10-29T09:51:38.613 回答