Kohana3 ссылка на предыдущий контроллер? - PullRequest
0 голосов
/ 31 марта 2011


есть ли способ в Kohana3 ссылаться на предыдущий контроллер / действие.

Позвольте мне объяснить немного лучше:
У меня есть базовый контроллер, который проверяет, вошел ли пользователь в систему с помощью модуля Auth.
Если пользователь переходит на страницу, к которой он не допускаетсядля просмотра он перенаправляется на экран входа в систему.

Теперь я хотел бы (когда он поет) вернуться на страницу, которая вызвала контроллер входа в систему.
Я хотел передать его как сегмент URI, но проблема в том, что контроллер может содержатьСимволы "/".

Пример:

  • пользователь переходит на mysite.com/user/profile
  • , он перенаправляется на mysite.com/login (необходимо передать user /профиль )
  • после успешного входа пользователь перенаправляется обратно на mysite.com/user/profile

1 Ответ

2 голосов
/ 31 марта 2011

Я делаю это, постоянно обновляя значение сеанса для пользователей, которые не вошли в систему.

Session::instance()->set('redirect', Request::instance()->uri());

Затем, после успешного входа в систему, вы можете перенаправить так:

Request::instance()->redirect(Session::instance()->get('redirect', URL::base());

Я не тестировал код, но концепция есть. Если значение не установлено, переходите к домашней странице.

Пожалуйста, будьте внимательны и проверяйте URL перенаправления. Этого не должно быть, но, поскольку мы имеем дело с пользовательскими данными, всегда есть небольшой шанс, что что-то плохое может вернуться. Последнее, что вам нужно, - это перенаправиться на зараженный вирусом веб-сайт после входа в систему.

...