CodeIgniter: Динамическое перенаправление поствхода в систему?

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

Если пользователь посещает некоторый URL сайта, что-то вроде этого:

http://www.mysite.com/project/detail/2049

И они являются текущими, вышел из системы, у меня есть он набор для автоматического отвечания им ударом на удар к странице входа в систему.

Мой вопрос, после того, как они входят в систему, что лучший способ состоит в том, чтобы перенаправить их к исходному URL, который они ввели, вместо говорят, перенаправляя их к домашней странице веб-сайтов?

Я думал, возможно, динамично создайте URL как скрытый элемент формы в форме входа в систему и перенаправьте там после успешного входа в систему... Что делает Вас, парни думают? Существует ли лучшая / лучшая практика для этого типа динамического перенаправления поствхода в систему?

5
задан Jake Wilson 25 January 2010 в 05:24
поделиться

3 ответа

Когда они попадают в ограниченную страницу, записывают URI и установите ее в качестве данных сеанса с помощью

This-> Session-> Set_userdata («Redirect», «Страница / URI / здесь»);

Затем перенаправляйте их в логин / регистрируйте

после того, как они войдут в систему, проверьте, присутствует ли «Redirect»

if($this->session->userdata('redirect'))
{
    redirect($this->session->userdata('redirect'));
}

, если он не предпримет их везде, где вы обычно принимаете их после входа в систему

16
ответ дан 18 December 2019 в 10:44
поделиться
-

Почему вы не создаете значение сеанса при логине, а затем проверьте его на каждой странице, необходимой для защиты?

Создайте его в библиотеку, поэтому вы можете позвонить следующему:

$this->mylibrary->login($user);

и

$ this-> myLibrary-> iS_logged_in ($ user); В верхней части каждой страницы и автоматически перенаправляют посетителей на ваш главный сайт.

0
ответ дан 18 December 2019 в 10:44
поделиться

При попытке доступа перехватывается:

redirect('/public/login/r'.$this->uri->uri_string());

Итак, в вашем случае, после перенаправления URL может выглядеть так:

http://www.example.com/public/login/r/project/detail/2049

Если логин успешен

$uri = $this->uri->uri_string();
$redirect = substr($uri, strpos($uri, '/r/')+2);
redirect($redirect);

, будет перенаправлять на исходный ресурс.

(И нет, +2 не должен быть +3)

0
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: