2013-04-05 22 views
0

流量打開:同Referer的網址爲兩個不同的瀏覽器標籤,用不同的URL PHP

- user visits a page say www.mysite.com/somepage/1 
- user clicks on Log Out button or times out and logs out 
    *user log out detected redirect to home page but save the referer URL 
    *redirect to /login?ref=$_SERVER['HTTP_REFERER'] (actual code test if its set) 
- user sees login page and relogs back 
- user is redirected back to refere url that is saved in $_GET['ref'] 

的aboe流工程完美第一個瀏覽器選項卡,如果用戶有多個選項卡打開然後$_GET['ref']被設置爲相同的URL這是爲第一個選項卡設置的。例如:

實施例:

Tab 1 : /somepage/hello/world 
    Tab 2: /another/page/1 

當用戶從標籤註銷1被重定向到:

/login?ref=http://site.com/somepage/hello/world (CORRECT)

如果用戶刷新上標籤2的頁面被重定向到:

/login?ref=http://site.com/somepage/hello/world 
    NOT CORRECT, IT SHOULD REDIRECT TO: 
/login?ref=http://site.com/another/page/1 
+0

不可能。您無法可靠地檢測到用戶是否在您的站點上打開了多個窗口/選項卡,或者某個事件來自哪個特定窗口。 – 2013-04-05 19:52:16

+0

看起來你只是重新定向,以後才能獲得HTTP_REFERER。這是非常間接的。只需在重定向之前存儲實際的URL *,然後將其添加爲重定向中的參數,以便您已擁有它。 – hakre 2013-04-05 20:59:09

回答

2

不要在任何地方重定向。在用戶已有的相同URL上處理重新登錄過程。這將保持每個標籤頁和瀏覽器窗口的URL不變。

+0

你甚至可以重定向,但是重定向應該已經以參數的形式保存了URL。這與您在答案中建議的內容完全相同,只是使用重定向;) – hakre 2013-04-05 20:57:39

+0

正確。技巧是不保留會話中的原始URL,而是保存在URL中。儘管如此,我不會推薦太多重定向。 – Sven 2013-04-05 21:14:24

+0

如果這取決於我這就是我會做的,但我需要一種方法來做到這一點與重定向。 – GGio 2013-04-05 21:15:58

相關問題