Перенаправить на старую страницу в php? - PullRequest
0 голосов
/ 31 июля 2009

Допустим, пользователь заходит на страницу "profile.php", но для этого требуется авторизация. Затем он перенаправляет на страницу входа. Но после входа, он должен перенаправить обратно на страницу profile.php. Как мне это сделать?

Как получить текущий URL в php?

$ _ SERVER [ 'URI'] ????

Ответы [ 3 ]

3 голосов
/ 31 июля 2009

Большинство сайтов просто передают переменную в форму входа, например:


redirect(login.php?returnUrl=original_page.php);

Затем, после обработки входа в систему, он может перенаправить обратно на страницу, на которую указывает returnUrl. Если переменная returnURl отсутствует, вызовите переменную по умолчанию (index.php или default.php).

Надеюсь, эта помощь.

1 голос
/ 31 июля 2009

Для получения текущей страницы URL concat $_SERVER["SERVER_NAME"] и $_SERVER["REQUEST_URI"].

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

0 голосов
/ 31 июля 2009

Я не знаю, является ли это лучшим методом, но я использовал для решения этой проблемы, как это. На страницах, где требуется вход в систему, скажем, в вашем случае «profile.php», я опубликую новую сессию, просто чтобы напомнить браузеру, который вы просматриваете с этой страницы. И затем на странице входа в систему после проверки учетных данных, если пользователь является легитимным, тогда я проверю, существует ли какой-либо сеанс для конкретной страницы. Если это так, я перенаправлю на эту страницу.

в псевдокоде

Первый в profile.php

if(!isset($_SESSION['login'])
header('Location: login.php');

в login.php, после проверки

if(isset($_SESSION['profile'])
header('Location: login.php');
else
header('Location: index.php');

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

...