Допустим, пользователь перешел на страницу «profile.php», но для этого требуется вход в систему. Затем он перенаправляется на страницу входа. Но после входа в систему он должен перенаправить на страницу profile.php. Как мне это сделать?
Как получить текущий URL-адрес в php?
$ _SERVER [ 'URI'] ????
Большинство сайтов просто передают переменную форме входа в систему следующим образом:
redirect(login.php?returnUrl=original_page.php);
Затем после обработки логина он может перенаправить обратно на страницу, на которую указывает returnUrl. Если нет переменной returnURl, вызовите значение по умолчанию (index.php или default.php).
Надеюсь, эта помощь.
Чтобы получить текущую страницу url concat $_SERVER["SERVER_NAME"]
и $_SERVER["REQUEST_URI"]
.
Что вы можете сделать, так это создать переменную сеанса, когда вы обнаружите, что пользователь должен войти в систему. Затем переадресовывайте его на страницу входа, обрабатывайте подписывание и после проверки правильности его учетных данных вы можете получить значение из сеанса и перенаправить его на которую он запрашивал.
Я не знаю, является ли это лучшим методом, но я использовал это для этого. На страницах, требующих входа в систему, скажите в своем случае «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, поэтому код может быть ржавым, но вы можете следовать такой логике. Опять же, могут быть лучшие варианты. Проводите исследования.