opencart перенаправляет ту же страницу после входа в систему
я новичок в opencart. теперь у меня есть сделать некоторые ограничения категории означает, что пользователь должен войти в систему, чтобы увидеть эту категорию. поэтому, когда пользователь нажимает на эту категорию, если он не вошел в систему, то он перенаправит на страницу входа. Вышеуказанный процесс работает нормально теперь, как только я войду в систему, я хочу перенаправить на ту же страницу категории. когда я прихожу на страницу входа в систему, я вижу значение " $_SERVER ['HTTP_REFERER']", как я хочу
site.com/index.php?route=product/category&path=62
теперь, когда я читал учебник онлайн, то сказал мне изменить некоторый код в этом файле " project\catalog\controller\account\login.РНР" у меня есть заменить ниже код
$this->redirect($this->url->link('account/account', '', 'SSL'));
К
if (isset($_SERVER['HTTP_REFERER'])) {
$this->redirect($_SERVER['HTTP_REFERER']);
} else {
$this->redirect(HTTPS_SERVER . 'index.php?route=account/account');
}
когда я прихожу на страницу входа, у меня есть правая ссылка в HTTP_REFERER, но когда я нажимаю на логин, то он становится ссылкой входа в referer. так как же я могу это установить ?
можете ли вы подсказать мне, как я могу это сделать ? меня это смущает.
Ответы - opencart перенаправляет ту же страницу после входа в систему / opencart redirect same page after login

19.03.2014 05:54:51
Проблема заключается в том, что после запроса на вход (который должен быть отправлен) форма отправляется на тот же URL, таким образом, предыдущий реферер заменяется страницей входа. Это выглядит так::
- реферер при перенаправлении на вход:
site.com/index.php?route=product/category&path=62
- реферер после запроса логина:
site.com/index.php?route=account/login
Поэтому сохраните ваш текущий URL-адрес в сеансе в контроллере категорий, прежде чем перенаправлять на вход:
$this->session->data['redirect_after_login'] = "<CURRENT URL GOES HERE>";
$this->redirect($this->url->link('account/login'));
Теперь в контроллере входа после успешного действия входа проверьте, существует ли переменная сеанса, и если да, то перенаправьте на нее:
if(!empty($this->session->data['redirect_after_login'])) {
$url = $this->session->data['redirect_after_login'];
unset($this->session->data['redirect_after_login']);
$this->redirect($this->session->data['redirect_after_login']);
}

06.10.2015 06:04:52
- Перед перенаправлением пользователя на страницу входа в систему вы можете установить переменную
$this->session->data['redirect']
на URL, куда пользователь будет перенаправлен при успешном входе в систему.
Следующий код, например, перенаправит посетителя на список адресов после успешного входа в систему:
$this->session->data['redirect'] = $this->url->link('account/address', '', 'SSL');
$this->redirect($this->url->link('account/login', '', 'SSL'));
- Или вы можете изменить каталог / контроллер / учетную запись / логин.что-то вроде этого.
A. Изменение
if ($this->customer->isLogged()) {
$this->redirect($this->url->link('account/account', '', 'SSL'));
}
к
if ($this->customer->isLogged()) {
$this->redirect($this->url->link('account/account', '', 'SSL'));
}elseif(!isset($this->session->data['redirect']) && isset($_SERVER['HTTP_REFERER'])){
$this->session->data['redirect'] = $_SERVER['HTTP_REFERER'];
}
В. и перемены
$этом->редирект($этом->гиперссылка->связать('счета/счета', ", 'SSL с'));
к
if(!empty($this->session->data['redirect'])){
$redirect = $this->session->data['redirect'];
unset($this->session->data['redirect']);
$this->redirect($redirect);
}else{
$this->redirect($this->url->link('account/account', '', 'SSL'));
}

08.06.2018 09:55:30
Я создал расширение для этого на Opencart.
https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=13998
Он имеет 3 Особенности: Страница после входа в систему. Страница после выхода из системы. Плюс Строгий Логин.