2010-11-05 64 views
0

4幀我有一個研究logout.php文件,它的工作充滿了想象,我面對然而是把腳本到一個新的「內聯網的風格」,它使用一個框架內4幀管理站點問題(標題,左,中,右)。PHP腳本退出與框架

我需要滿足兩個要求,我有一個非常困難的時間找到解決方案(是的,我知道框架吸今天的消費者網站,但重申,這是一個內部系統管理面板與小部件無處不在) 。

  1. 當用戶點擊在頂部幀的「退出」按鈕時,整個頁是針對logout.php然後重定向到一個單一的網頁「home.php」。到目前爲止,點擊註銷只會將特定的幀傳送到我想要的目的地。

  2. 當用戶登錄時,會創建一個SESSION變量並將其設置爲true;如果在沒有SESSION [validated] = true的情況下訪問頁面,用戶將被註銷。與上面類似,如果發生這種情況,我需要將整個框架集指向logout.php。

我想實現這個沒有JavaScript(因爲這顯然可以簡單地禁用和JS不是真正的安全措施)。

有人曾經處理過這個問題嗎?

回答

3

註銷按鈕是一個鏈接嗎?如果是這樣,你不能使用target="_parent"來改變框架集的頁面嗎?

編輯
回覆#2:如果會話超時,你可以做一箇中介頁面與使用target=_parent一個鏈接,下面的JavaScript中,這兩者都將打出來的框架。

<script type="text/javascript"> 
if (top.location != self.location) top.location = 'login.php' 
</script>

這是一件好事,因爲如果他們啓用JavaScript,他們甚至不會注意到,如果他們不這樣做,他們仍然會打出來的幀。

+0

看來你解決上述第1部分,但在這種情況下,我試圖做到這一點,並不管什麼原因,它glitched和它應該爲所有頁面(即我可以再編寫一個具體的框架網址和訪問沒有註銷該頁面,我將再次修改以調整任何關於#2的想法? – JM4 2010-11-05 05:09:59

+0

@ JM4 - Re#2,我不認爲這是可能的,如果不使用JavaScript。 – 2010-11-05 05:18:34

+0

@ JM4 - 我已經添加了一個如何用js來做的例子。 – 2010-11-05 13:26:34

0

解決方案第1部分:

作出這樣一個註銷按鈕:

<a href="/logout.php" target="_top">logout</a> 

然後讓logout.php做所有的退出(可能只是清除會話)的努力工作,然後將用戶重定向到適當的框架集(使用PHP的頭部命令進行重定向)。

解決方案第2部分:

這應該不會隨機發生。如果你登錄,你的會話被設置爲validated = true。你不會「遇到」你的會話恰好在其他地方的頁面。

但是,如果您的會話無效,您可以包含一個PHP文件(或者如果您足夠聰明,可以在單一入口點執行此操作)重定向到註銷頁面。見上面的1。

+0

重新編號2:您的會話可能會超時,並且可能會發布/刷新一個幀,並發現超時。 – 2010-11-05 13:28:47

+0

你說得對。如果會話失效,那麼可以通過在全局PHP /單入口點檢查並重定向來解決這個問題。 – dyve 2010-11-06 11:39:34