Codeigniter GET参数不通过url传递

时间:2012-10-29 09:48:05

标签: codeigniter get

我正在尝试为我的网站实施注销程序。 当用户单击“注销”按钮时,我将其重定向到以下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/

为什么会这样?

2 个答案:

答案 0 :(得分: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原则

答案 1 :(得分:1)

Codeigniter已经加载了深入的INPUT类。 检查一下。

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