好的,这就是我所做的:
我访问
www.mywebsite.com/orders?id=1
它会在继续之前重定向到登录。
我登录成功,但它重定向到
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/