php - Codeigniter登录后如何重定向回上一页?

标签 php codeigniter

好的,这就是我所做的:

  1. 我访问 www.mywebsite.com/orders?id=1

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

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

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

如何保留?id=1

最佳答案

在将用户重定向回登录页面之前,将当前页面(请求的页面)存储在 session 变量中。假设您有一个名为 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
    }

}

关于php - Codeigniter登录后如何重定向回上一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935004/

相关文章:

php - 从 php 脚本问题调用 javascript

php - Phil Sturgeons php codeigniter rest api 中的方法特定身份验证

php - 如何模拟交易失败?

php - 如何在 Codeigniter 中加载 Controller ?

php - 不同域中 IFRAME 上的 Laravel 7 session 中断

php - 在 PHP 响应中显示希伯来语单词

javascript - php中上传表单的进度条失败

php - 永久可关闭的 jQuery 弹出窗口

php - codeigniter php - 序列化数组

codeigniter 包含 css 或 js 文件