登录Code Igniter后如何重定向回上一页?

时间:2018-02-22 18:42:33

标签: php codeigniter

好的,这就是我的所作所为:

  1. 我转到www.mywebsite.com/orders?id=1

  2. 在继续之前重定向到登录。

  3. 我成功登录但重定向到www.mywebsite.com/orders

  4. 如果我已经登录并直接使用GET方法,它可以正常工作。但如果我被要求登录,GET方法就会消失。

    如何保留?id=1

3 个答案:

答案 0 :(得分:1)

在将用户重定向回登录页面之前,将当前页面(请求的页面)存储在会话变量中。假设你有一个名为check_login的函数,这或多或少会像你应该做的那样:

public function check_login() {
    if (!$this->session->has_userdata('logged_in') || $this->session->logged_in !== true) {
        if (!empty($_SERVER['QUERY_STRING'])) {
            $uri = uri_string() . '?' . $_SERVER['QUERY_STRING'];
        } else {
            $uri = uri_string();
        }
        $this->session->set_userdata('redirect', $uri);
        redirect('/auth/login');
    }
}

然后,当用户成功登录您的登录功能时,某处应该具有以下逻辑:

public function login() {

    // form validation
    // get post vars
    // check username/pwd against db
    if ($login) {

        if ($this->session->has_userdata('redirect')) {
            redirect($this->session->redirect);
        } else {
            redirect('/dashboard');
        }

    } else {
        // error logging in
    }

}

答案 1 :(得分:1)

会话变量可以存储id.While登录使用会话传递id值。您可以在会话中的任何地方检索该值。

$这 - >负载>库('会话&#39); $ this-> session-> set_userdata(' userId',' YourId');

其中userId是会话变量的名称,而YourId将是值。

答案 2 :(得分:0)

简单地使用这个 重定向($_SERVER['HTTP_REFERER']);