У меня есть веб-сайт, на котором есть веб-страница, содержащая список журналов. Теперь я обычно даю ссылку для доступа к этой странице для некоторого пользователя, например: http://172.20.22.77/someapp/results.htm?id=45
Теперь, когда некоторые пользователи нажимают на это. Это даст ему экран входа. Но после входа в систему он не переходит на страницу, которая была задумана. Я использую сеансы для реализации веб-сайта, и у него много страниц, поэтому сеанс используется для отслеживания просмотра пользователем страницы.
любезно сообщите мне, как я могу перенаправить URL-адрес, запрашиваемый после входа пользователя в систему.
Поместите URL-адрес пользователя в сеанс перед перенаправлением на страницу входа. Затем страница входа в систему может перенаправляться обратно на этот сохраненный URL после аутентификации пользователя.
На странице, требующей входа в систему:
session_start(); $_SESSION['after_login'] = $_SERVER['REQUEST_URI']; header("Location: login.php");
На странице входа:
session_start(); if (user has entered correct username and password) { header("Location: http://example.com" . $_SESSION['after_login']); }
Вы можете сохранить URI в сеансе, и до входа в систему просто выполните перенаправление:
$_SESSION['URI'] = $_SERVER['REQUEST_URI']; // ... header('Location: http://mysite.com ' . $_SESSION['URI'];
Используйте это на защищенной странице, чтобы сохранить текущую страницу url и строку запроса в сеансе.
<? function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } session_start(); $_SESSION['url_attempt'] = curPageURL();
Используйте это после успешного входа для перенаправления пользователя на страницу, хранящуюся в сеансе.
<?php session_start(); header('Location: '.$_SESSION['url_attempt']); ?>
<?php header('Location: http://www.example.com/'); ?>