我是codeigniter框架的新手。我正在尝试构建一个身份验证系统。
身份验证工作正常。我的问题是,在成功登录后,当我点击浏览器中的后退按钮时,它会再次被定向到登录页面。我想将其重定向到主页本身。 我想重新加载主页而不是索引页面(索引页面是登录页面,成功登录后转到主页)
我该怎么做
提前致谢
答案 0 :(得分:2)
在控制器中使用重定向:
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
}
这个简单的例子展示了如何在输出登录屏幕之前检查用户是否已登录,然后在控制器中使用重定向。
在某些浏览器/网络服务器组合中,我发现必须将页面的标题设置为实际从服务器重新加载。否则结果可能是,即使登录,按下实际上也会显示登录屏幕;没有对服务器进行查询。你可以在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");
将页面设置为始终在反压时重新加载。
答案 1 :(得分:0)
登录成功后,您可以使用
if ($this->login())
{
//redirect them to the index page
redirect('/', 'refresh');
}