Kohana3 ссылка на предыдущий контроллер?


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

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

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

Пример:

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

1 ответ

Решение

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

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

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

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

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

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

Другие вопросы по тегам