[英]Clear form data after success codeigniter using php not jquery
[英]In CodeIgniter, how to clear “form data” after redirecting page
我不确定我在问题标题中是否正确解释了它,所以这里是详细信息:
Login
控制器:
function authenticate() {
if ( authorized ) {
redirect('lobby');
} else {
redirect('login');
}
}
Lobby
控制器:
function index() {
//load lobby view
}
发生的是,在登录页面中,我输入用户/密码,单击登录,然后调用authenticate()
,并将我重定向到Lobby
。
但是,当我在“大厅”上单击“刷新”时,再次提交了登录表单,因此我再次“登录”。 如何防止这种情况发生?
您所看到的是浏览器本身与CodeIgniter不相关的行为。 Web浏览器存储登录表单的POST数据,并在用户单击“提交”按钮时导航到表单的操作。 来自服务器的响应是重定向。 因此,当用户单击刷新按钮时,浏览器将刷新表单操作,而不是服务器的重定向响应。
您有两种选择可以解决或避免这种情况。 首先想到的是在authenticate方法中进行检查,以查看用户是否已经登录。如果已经登录,则继续并重定向到大厅。 否则,请照常检查用户的登录信息。
您也可以仅更改登录表单的操作以直接进入大厅并使用大厅的index方法进行身份验证。 如果用户未登录,则将其从那里重定向回登录表单。
您应该使用控制器在构造中验证用户是否登录,以这种方式,您可以基于会话变量进行重定向或不进行重定向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.