2013-10-06 28 views
2

使用php,我該如何做到這一點?例:使用戶正在查看的頁面停留在頁面上而不是重定向到主頁

1)總共有讓我們說的5頁(A,B,C,d,E)的任何用戶可以觀看(或者登錄或退出)

2.)用戶X正在查看頁面(C)和

3)用戶X未登錄在登錄頁上的(C),並登錄到同一頁面(C),他/她觀看,而不是被重定向到主頁

我知道如何讓它在用戶身上當任何用戶在任何頁面上登錄時,它都會被重定向到主頁,但我不希望這一點,也是我的用戶不想要的東西 - 我希望任何用戶都可以登錄他們正在查看的任何頁面,並且它保持在該頁面,而不是被重定向。

這是我有一個用戶登錄並被重定向,但不知道如何使其工作,用戶能夠保持在用戶登錄時查看的任何頁面。

PHP

header("Location: index.php"); 

有沒有更多的是需要讓用戶留下來登錄時,他們正在查看同一頁面上?還是有一個簡單的解決方案,我似乎無法僅使用上面的1行代碼?

我讀過大量的教程/博客/論壇等等,但無法在任何地方找到明確的答案。我確實遇到過'PHP_SELF',但不知道如何實現這一點,並且php.net實際上並沒有明確的解決方案來使用它(至少從我讀過的內容來看)......任何幫助都會非常感謝。

解決: - >謝謝你的幫助Thinkswan

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
header("Location: $current_url"); 

更新: - >一個,從最初的問題

源於你上面提供什麼樣的問題正確的格式,我們可能會採取更進一步?例如:

相同的規則適用於前面提到的。

1)如果用戶X目前尚未登錄頁面(C),並假設頁(C的)網址讀取http://www.example.com/members.php,有他/她點擊該網頁上的一個div容器,小的另一大div容器打開。

2)中該URL現在讀取http://www.example.com/members.php#registered_members

3)雖然這是開放的,用戶X決定現在登錄。有沒有辦法讓它在那裏,一旦用戶X的日誌保持在同一頁面上,並打開更大的div容器?截至目前,一旦用戶X登錄,div容器崩潰,但IS登錄在同一頁面上。

回答

3

您可以使用$_SERVER['REQUEST_URI']

實施例:

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
header("Location: $current_url"); 

應答以訂正問題:

的URL,被稱爲片段標識符#registered_members部分,是從來沒有被髮送到服務器它是客戶端 - 只有一面。所以PHP從未意識到即使存在。

但是,您可以在頁面重新加載時使用JavaScript進行檢查,然後根據它是否存在來更新頁面。

<script>alert(window.location.hash);</script> 
+0

輝煌 - 是跨瀏覽器兼容嗎?我一開始需要'http://'嗎? – user2732875

+0

回答了我自己上面的問題,謝謝'thinkwan'你幫忙! – user2732875

+0

對於正在學習的人來說,這可能有所幫助:http://stackoverflow.com/questions/13772934/php-server-variables-serverhttp-host-vs-serverserver-name,http://stackoverflow.com/questions/4730798/what-is-difference-between-serverrequest-uri-and-getq和http://php.net/manual/en/function.header.php – pablofiumara

1

如果您在所有表單中包含或調用相同的登錄頁面,則可以執行一項操作。只需將會話變量中的當前頁面url重定向到該頁面即可。

相關問題