2012-03-07 1 views
2

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

if(!isset($_SESSION)) 
{ 
session_start(); 
    } 
    $_SESSION['url'] = $_SERVER['REQUEST_URI']; 

на каждой странице и странице входа я использовал:

session_start();  
if(isset($_SESSION['url'])) 
$url = $_SESSION['url']; // holds url for last page visited. 
else 
$url = "login-home.php"; // default page for 

header("Location: $url"); 

, но с помощью этого каждый пользователь направляется на ту же страницу ..... страница первый пользователь имеет последний посетил ...... но я хочу направить каждого пользователя на свою последнюю посещенную страницу ... что не так с моей помощью code.please.

+0

@rkosegi: Нет, не надо. –

ответ

2

Вы храните в базе данных $_SESSION['url'], а также другие данные пользователя перед тем, как выйти из системы? И когда пользователь входит в систему, извлекает этот URL из базы данных (на основе идентификатора пользователя или имени пользователя) и перенаправляет его туда. Я не вижу необходимости использовать $ _SESSION в этом конкретном случае.

$ _SESSION не является вашим ответом, так как он не волшебным образом связывает пользователя с доступом к странице зарегистрированного пользователя (который имеет свои учетные данные, хранящиеся в базе данных).

Как я понял из вашего вопроса, то, что вам нужно, это

попадет на последнюю страницу, он посетил перед выходом из в его последнем подписанный в сессии

Не последний которую он посетил до того, как он попал на страницу входа (как и все ответы здесь), но в предыдущее состояние с момента последнего входа в систему. Вам нужно запомнить это состояние в базе данных.

Сессия и аутентификация пользователей - это две разные вещи.

-1
session_start();  
if(isset($_SESSION['url'])) 
$url = $_SERVER['HTTP_REFERER']; 
else 
$url = "login-home.php"; // default page for 

header("Location: $url"); 

для последней посещенной страницы вы должны использовать $ _SERVER [ «HTTP_REFERER»]

+0

после добавления этого ... он даже не будет входить в login-home.php для любого пользователя .... он обновляет страницу login.php для каждого пользователя. Пожалуйста, скажите почему? –

+0

try: $ _SESSION ['url'] = $ _SERVER ['HTTP_REFERER']; а во второй части вашего кода: $ url = $ _SESSION ['url']; Вы должны уважать свойства referrer. referrer берет последнюю посещенную страницу, например, если вы находитесь в индексе и присоединяетесь к странице контакта, referrer будет index.php. Или вы можете хранить в db, на выходе, последней странице и перенаправлять пользователя на него (pt не самый лучший практика) Попробуйте еще один трюк. Храните реферальную ссылку в сессии – Crsr

+0

, как дать -1 и почему? не первый .. и я хочу понять, я получаю -1 .. спасибо – Crsr

0

можно было бы добавить текущий URL в форме входа. В скрытом поле. Когда пользователь вошел в систему, используйте данные POST или GET, чтобы перенаправить пользователя обратно в исходное состояние.

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