2010-08-25 6 views
6

Когда пользователь пытается получить доступ к нашему сайту по ссылке (например, перейдя на сайт www.website.com/privatepage), они перенаправляются на страницу входа. Как только вы входите в систему, мы хотим перенаправить их на этот целевой URL - как вы это делаете?Предполагаемый перенаправление URL + перенаправление по умолчанию после входа?

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

Может ли кто-нибудь помочь мне понять это?

+0

Вы могли бы быть более конкретными, указав, какой из них которую вы используете. Но самое главное - отправить этот URL-адрес страницы, когда вы перенаправляете пользователя для входа. Таким образом, вы можете получить последний URL-адрес и после успешного переадресации на него. Прочтите что-то о request.referer для более подробной информации. – AMIT

+0

Да, как сказал Амит, мы не можем много помочь, не зная методов, которые вы используете. Мой ответ - всего лишь общая помощь. – palswim

ответ

4

Как они перенаправляются на страницу входа? Какой бы метод вы ни делали, вы можете добавить переменную GET в конце URL-адреса страницы входа, а затем ссылаться на эту переменную на странице входа.

Таким образом, пользователь хочет получить доступ к www.example.com/privatepage, но для этого вам необходимо сначала войти в систему www.example.com/login. Переназначьте их до www.example.com/login?targetpage=/privatepage, затем в коде для своей страницы входа вы можете получить доступ к переменной targetpage.

3

Обычно я храню страницу в сеансе PHP, прежде чем перенаправлять страницу входа. После входа в систему проверьте, установлено ли значение сеанса, если оно затем перенаправляется на эту страницу.

5

Возможно, было бы неплохо иметь белый список принятых URL-адресов при перенаправлении таким образом - в противном случае злоумышленник может отправить кому-то ссылку, например example.com/login?attacker.com/fake_examplecom, и пользователь будет перенаправлен на сайт злоумышленника, думая, что они только что вошли на ваш сайт. Оригинальный url указал на ваш сайт, поэтому он выглядит заслуживающим доверия. Есть много неприятностей, которые можно сделать с этим, как вы можете себе представить.

6

на странице входа в систему:

если вы идете в www.example.com/private_page

с использованием CodeIgniter (на частной странице)

// if user is not logged in... 
$_SESSION['redirect'] = $this->uri->segment(1); 
redirect('login'); 

на странице входа

// successfully logged in.. 
if (isset($_SESSION['redirect'])) { 
    redirect($_SESSION['redirect']); 
} else { 
    // redirect to default page 
} 
Смежные вопросы