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