Php 在CodeIgniter中,如何清除;表格数据“;重定向页面后

Php 在CodeIgniter中,如何清除;表格数据“;重定向页面后,php,codeigniter,redirect,Php,Codeigniter,Redirect,我不确定我在问题标题中的解释是否正确,因此,以下是详细信息: 登录控制器: function authenticate() { if ( authorized ) { redirect('lobby'); } else { redirect('login'); } } function index() { //load lobby view } 大厅管理员: function authenticate() { if (

我不确定我在问题标题中的解释是否正确,因此,以下是详细信息:

登录
控制器:

function authenticate() {
    if ( authorized ) {
        redirect('lobby');
    } else {
        redirect('login');
    }
}
function index() {
    //load lobby view
}
大厅
管理员:

function authenticate() {
    if ( authorized ) {
        redirect('lobby');
    } else {
        redirect('login');
    }
}
function index() {
    //load lobby view
}
在登录页面中,我输入user/pass,单击login,然后调用
authenticate()
,并将我重定向到
大厅


但是,当我在大厅中单击“刷新”时,登录表单会再次提交,因此我会再次“登录”。如何防止这种情况发生?

您看到的是浏览器中与CodeIgniter本身无关的行为。web浏览器存储登录表单的POST数据,并在用户点击提交按钮时导航到表单的操作。来自服务器的响应是重定向。因此,当用户点击刷新按钮时,浏览器刷新表单操作,而不是服务器的重定向响应

你有几个选择来解决或避免这个问题。首先想到的是检查authenticate方法,看看用户是否已经登录。如果是这样的话,那就转到大厅。否则,请正常检查用户的登录信息


您还可以将登录表单的操作更改为直接转到大厅,并在大厅的索引方法中进行身份验证。如果用户未登录,请将他们从那里重定向回登录表单。

您看到的是浏览器中与CodeIgniter本身无关的行为。web浏览器存储登录表单的POST数据,并在用户点击提交按钮时导航到表单的操作。来自服务器的响应是重定向。因此,当用户点击刷新按钮时,浏览器刷新表单操作,而不是服务器的重定向响应

你有几个选择来解决或避免这个问题。首先想到的是检查authenticate方法,看看用户是否已经登录。如果是这样的话,那就转到大厅。否则,请正常检查用户的登录信息


您还可以将登录表单的操作更改为直接转到大厅,并在大厅的索引方法中进行身份验证。如果用户未登录,请将其重定向回登录表单。

如果用户是否登录,则应使用控制器在构造中验证,这样,您可以根据会话变量重定向或不重定向。

如果用户是否登录,则应使用控制器在构造中验证,您可以根据会话变量重定向或不重定向