我是codeigniter框架的新手。我正在尝试建立一个身份验证系统。
身份验证工作正常。我的问题是,在成功登录后,当我单击浏览器中的后退按钮时,它会再次指向登录页面。我想将它重定向到主页本身。我想重新加载主页而不是索引页(索引页是登录页,成功登录后转到主页)
我该怎么做
提前感谢
在控制器中使用重定向:
function index()
{
if ($this->session->userdata['logged_in']) // or whatever you use
{
redirect ('/controller/home');
}
else
{
// show login - post login form to /controller/do_login
}
}
function do_login()
{
// check login form and set user session
redirect('/controller/home'); // or index - does the same...
}
function home()
{
// show home page
}
这个简单的例子展示了如何在输出登录屏幕之前检查用户是否已登录,然后在控制器中使用重定向。
在一些浏览器/web服务器组合中,我发现必须设置页面的标题才能从服务器上实际重新加载。否则,结果可能是,即使登录,按下back也会显示登录屏幕;则不对服务器进行查询。您可以在htaccess中设置这一点,但可以在CI语法中设置,然后在标头中输出HTML:
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
$this->output->set_header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
将页面设置为总是在反按时重新加载。
登录成功后,您可以使用
if ($this->login())
{
//redirect them to the index page
redirect('/', 'refresh');
}