2011-01-25 5 views
1

У меня такой сценарий. Когда администратор получает почту от клиента о заказах с URL-ссылкой на страницу формы PHP, доступ к которой возможен только при входе администратора. Если администратор не вошел в систему, URL-адрес будет перенаправлен на страницу входа. После успешного входа в систему администратора мне необходимо перенаправить его на URL-адрес, который он получил в письме.Перенаправление обратно после входа в PHP

Может кто-нибудь сказать мне, как это сделать. Я читал кое-что о HTTP_REFERER, но он не работает должным образом, как если администратор не вошли в систему, она напрямую перенаправлять login.php

Пожалуйста, помогите мне решить проблему

Благодаря

ответ

3

Просто попробуйте дать несколько примеров здесь:

originating_page.php

if(!is_admin) { 
    $_SESSION["originatingpage"] = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; 
    header('Location: http://'.$_SERVER["HTTP_HOST"].'/login.php'); 
    } 
} 

login.php

if(is_admin_success_login) { 
    if (isset($_SESSION["originatingpage"])) { 
    $originatingpage = $_SESSION["originatingpage"]; 
    unset($_SESSION["originatingpage"]); 
    header('Location: http://'.$originatingpage); 
    } else { 
    //do another default action 
    } 
} 
3

МАГАЗИНУ URL страницы, к которой человек пытался получить доступ до перенаправление на login.php. Вы можете сохранить его в переменной сеанса или в URL-адресе. Тогда ваша страница login.php будет знать, куда послать пользователю после того, как они вошли в

Например, на странице требует Логин:.

session_start(); 
$_SESSION['came_from'] = $_SERVER['REQUEST_URI']; 
header("Location: login.php"); 

И в login.php, после того, как пользователь было зарегистрировано в:

session_start(); 
header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SESSION['came_from']); 
+0

URL-адрес содержит динамические значения, такие как идентификаторы. Это может быть изменение в любое время, можете ли вы рассказать мне, как я могу сохранить URL-адрес в сеансе перед вызовом login.php – Mujahid

+0

Следует отметить, хотя и не то, что я сделал особенно звездную работу в своем ответе, что «Местоположение 'header должен быть полностью квалифицированным (это означает' http: // host.com' в дополнение к расширенным '/path/to/script.php? args') –

0

страницу входа может иметь скрытый вход:

<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" /> 

Или в «originati ng, вы можете передать текущий REQUEST_URI как переменную get, которая, в свою очередь, входит в тот же элемент формы. Затем, когда они подают форму, вы проверяете на $_REQUEST['redirect_to'] и передаете ее с header().

... 
if (logged in && redirect to is filled in){ 
    header('Location: '.$_REQUEST['redirect_to']); 
} 
... 

Выше псевдо-код, кстати

Смежные вопросы