Как переслать на правильный URL после входа в систему - PullRequest
3 голосов
/ 05 февраля 2011

У меня есть веб-сайт, на котором есть веб-страница, содержащая список журналов.Теперь я обычно даю ссылку для доступа к этой странице для какого-то пользователя, например: http://172.20.22.77/someapp/results.htm?id=45

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

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

Ответы [ 4 ]

6 голосов
/ 05 февраля 2011

Введите 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']);
}
1 голос
/ 05 февраля 2011

Вы можете сохранить URI в сеансе и перед входом в систему просто сделать перенаправление:

$_SESSION['URI'] = $_SERVER['REQUEST_URI'];

// ...

header('Location: http://mysite.com ' . $_SESSION['URI'];
0 голосов
/ 05 февраля 2011

Используйте это на защищенной странице, чтобы сохранить 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']);
?>
0 голосов
/ 05 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...