好的,这就是我的所作所为:
我转到www.mywebsite.com/orders?id=1
在继续之前重定向到登录。
我成功登录但重定向到www.mywebsite.com/orders
。
如果我已经登录并直接使用GET方法,它可以正常工作。但如果我被要求登录,GET方法就会消失。
如何保留?id=1
?
答案 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']);