Перенаправление пользователя обратно на первоначально желаемый URL после входа в систему - PullRequest
6 голосов
/ 25 августа 2009

Пример:

  1. Пользователь не авторизован
  2. У пользователя есть товары в корзине
  3. Пользователь переходит на / checkout
  4. Пользователь перенаправлен на страницу / логин
  5. Пользователь успешно вошел в систему и должен быть перенаправлен обратно на страницу / checkout

Откуда действие входа в систему знает, чтобы перенаправить пользователя на оформление заказа в этом случае? Я хочу, чтобы это работало во многих различных ситуациях, а не только /checkout.

Ответы [ 4 ]

5 голосов
/ 25 августа 2009

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

Например: www.example.com/Login.php?returnUrl=[someUrl]

После успешной аутентификации пользователь будет перенаправлен на URL-адрес, указанный в строке запроса.

...

Редактировать: Это общее решение, оно не может быть вариантом, учитывая рамки, которые вы используете. Но что-то нужно учитывать.

0 голосов
/ 26 августа 2009

Я использую переменную сеанса, чтобы сохранить запрошенный URL. Когда он успешно входит в систему, я проверяю, установлена ​​ли эта переменная сеанса. Если он установлен, я делаю перенаправление на запрошенный URL.

0 голосов
/ 26 августа 2009

Я сделал, где мы перенаправили на / login с простым параметром 'возвращение'. Логин видит параметр и проверяет реферер, чтобы увидеть, что это одна из наших страниц. Если это так, он перенаправляет обратно к тому рефереру. Работает действительно хорошо. В противном случае можно указать «назначение» перенаправления после входа в систему в другом параметре (будь то строка запроса, сеанс или флэш-сообщение)

0 голосов
/ 25 августа 2009

Я разместил немного кода из моего класса "My_Form", в котором отслеживание "реферера" встроено в форму на SO1249274 . Другие решения, опубликованные там, могут помочь вам решить вашу проблему.

...