简体   繁体   English

登录后单击“后退”按钮,将登录的用户重定向到主页

[英]Redirect logged in user to home page when back button is pressed after login

I'm currently learning the basics of MVC using codeigniter as my framework and I created a login page. 我目前正在学习使用codeigniter作为框架的MVC基础知识,并创建了一个登录页面。 Now I already redirected a user after he logged in and stored a session data but the problem is after I log in (where in I redirected into another page) then pressed the back button the login page still displays unless I highlight the URL in the address bar and pressed enter wherein I go back again to the redirected page. 现在,在用户登录并存储会话数据之后,我已经对其进行了重定向,但是问题出在我登录后(在其中我重定向到了另一个页面),然后按了返回按钮,除非我在地址中突出显示URL,否则仍显示登录页面条,然后按Enter键,然后我再次返回到重定向页面。 Well I'm aware that this is because of the session check I've made but I need a solution on how I can solve it for the user to not go back again to login page unless he logged out. 好吧,我知道这是因为我进行了会话检查,但是我需要一个解决方案,如何解决该问题,除非用户注销,否则该用户将不会再次返回登录页面。 Same thing for logged out user not to go back to a certain page unless he/she logs in again. 对于注销用户,除非他/她再次登录,否则不要返回到特定页面。

To give a more details what exactly I wanted to happen is just like in facebook login wherein after you logged in and clicked the back button on browser the facebook will still redirect you to your homepage and not on the login page. 要提供更多详细信息,我到底想发生什么,就像在Facebook登录中一样,在登录并单击浏览器上的“后退”按钮后,Facebook仍会将您重定向到您的主页,而不是登录页面。 samething goes to logout. 同样的事情要注销。

Well here's my controller so far I think this explains it all. 好了,到目前为止,这是我的控制器,我认为这可以解释一切。 Please do correct me if I made some redundancies in my code and understand that I'm a newbie on this. 如果我在代码中进行了一些裁员,请理解我是新手,请更正我。 :) :)

public function index()
{
    $data['error'] = null;
    $username = $this->input->post('username');
    $password = $this->input->post('password');
    $data['login'] = $this->login_model->get_login_credentials($username,$password);
    $data['session'] = $this->login_model->get_session($username);


    //CHECK IF THE $PAGE VIEW IS EXISTING
    if ( ! file_exists('application/views/pages/login.php'))
    {
        // IF PAGE DOESN'T EXISTS SHOW 404 ERROR
        show_404();
    }

    if(($this->input->post('login')=='Login'&&$data['login']==1)||($username==$data['session']['username'])){
        //SUCCESS LOGIN
        $this->load->helper('url');  
        redirect('news');
    }

    if($this->input->post('login')=='Login'&&$data['login']!=1){
        //LOGIN FAILED
        $data['error'] = "Invalid login credentials.";
    }


    //FOR THE TITLE PART
    $data['title'] = ucfirst('login'); 

    $this->load->view('pages/login/login', $data);
    $this->load->view('templates/footer', $data);

}

First for checking session data you can use : 首先用于检查会话数据,您可以使用:

$this->session->userdata('item');

here 这里

$username==$data['session']['username'])

And perhaps you can SET 1 check at the start of your index as : 也许您可以在索引开头将SET 1检查为:

if($this->session->userdata('username'))
redirect('news');

Dont forget to load all helpers and libs required before callign those functions.. 不要忘了在调用这些函数之前加载所有需要的帮助程序和库。

For sessions check http://codeigniter.com/user_guide/libraries/sessions.html 对于会话,请访问http://codeigniter.com/user_guide/libraries/sessions.html

If you don't want to to go to login page after successful login, you can test the session in login page and redirect into some other page if session is set. 如果你不想去成功登录后到登录页面,您可以在登录页面测试会话和重定向到其他页面,如果session设置。 Try this code. 试试这个代码。

if ($data['session']['username']) != NULL) {
    redirect('home_page','refresh');
}

这个问题已经在这里解决: 按下后清除缓存,以防止 Hashem Qolami 注销后返回登录页面或上一页相同的问题,但观点不同。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 按下Windows后退按钮后如何将页面重定向到主页而不注销用户? - how to redirect page to home once windows back button is pressed without login the user out? PHP:如何防止用户登录后单击“后退”按钮进入登录页面? - PHP: How to prevent user go to login page when the user click back button after logged in? Joomla登录页面(如果已登录用户)重定向到主页 - Joomla login page, if user is already logged redirect to home page 如果用户未登录,重定向到登录页面? - redirect to login page if user is not logged in? 如果用户未登录,则重定向到登录页面 - Redirect to login page if user is not logged in 在提交按钮单击登录详细信息后如何将用户重定向到主页 - how to redirect user to the home page after login details on submit button click 在php codeigniter中按下后退按钮时如何停止将登录用户重定向到登录页面 - How to stop redirecting logged-in user to login page when pressing back button in php codeigniter Codeigniter:当用户注销后单击“后退”按钮时,如何重定向到首页? - Codeigniter: How can I redirect to home when user click on back button after logout? 用户注销后单击“后退”按钮时,如何重定向到首页? - How can I redirect to home when user click on back button after logout? 如果用户已经登录,则需要在主页上重定向 - Need To redirect At home page If user Already logged in
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM