(已解決) 關於session過期 讓左右frame自動刷新 [論壇 - Ubuntu 程式設計]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



(已解決) 關於session過期 讓左右frame自動刷新
會員二級
註冊日期:
2012/6/27 20:43
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 176
MP : 27 / 3697
EXP: 6
離線
各位大大好~

小弟寫了一個登入頁面

登入時 有給一個$_SESSION["id"]變數

登入後的主頁面是由兩個frame組成的(left.php & right.php)

當session過期後

小弟有在right.php裡面加入這行判斷session是否存在

if ( !$_SESSION["id"] )
header( "location:login.php" ); // session不存在就回到登入畫面

但是左邊的frame還是繼續顯示一樣的內容

僅右邊的frame出現登入畫面

請問小弟該如何讓左邊的frame也回到登入頁面呢?

小弟有試過

window.location.reload();



parent.left.location.reload();

但左邊的frame始終不為所動

另外,為了測試session過期 小弟有去修改php.ini的session.gc_maxlifetime

我把預設的1440秒改成30秒 但session好像沒有如我預期的在30秒後過期

我也有把apache重開過了 不曉得是在哪個環節上出了問題

還煩請各位有經驗的大大 指導小弟一下~

2013/4/24 14:13
應用擴展 工具箱
回覆: 關於session過期 讓左右frame自動刷新
會員二級
註冊日期:
2012/6/27 20:43
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 176
MP : 27 / 3697
EXP: 6
離線
要讓左右兩邊frame一起refresh的方法:

<script>
parent.location.reload();
</script>

而session過期時間的問題

是因為session雖然過期了

但是系統的garbage collection沒有去執行

所以session還是會在

而garbage collection的執行時機

是要去設定的

要設定兩個參數

一個是session.gc_probability(預設是1)

一個是session.gc_divisor(預設是100)

算法是 1/100*100% = 1%

所以 基本上 預設執行garbage collection的機率是1%

如果想要機率高一點 不外乎是把session.gc_probability改大一點

或是把session.gc_divisor改小一點

但缺點就是會造成系統的負擔 效能會降低 因為 太頻繁去執行garbage collection了

以上是我找到的解答

有錯還請各位有經驗的大大 指正一下~

2013/4/25 16:59
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.