[請益] 請問如何知道session timeout

看板PHP作者 (包子)時間13年前 (2011/06/15 09:59), 編輯推噓3(3027)
留言30則, 4人參與, 最新討論串1/1
不好意思~我是PHP的初學者 我正在做login的東西~ 在一開始我用: session_set_cookie_params(60); session_start(); 來設定timeout時間 接著我做了: $_SESSION['un'] = $username; 來指派值~ 之後log in成功~我跳到了另一個php檔~ 在一進去我就做了: if ( ! isset( $_SESSION['un'] ) ) { echo '<meta http-equiv=REFRESH CONTENT=3;url=login.php>'; } 來確定使用者有log in~不然我就把他redirect出去 不好意思講一堆~現在問題來了~ 我想做: if(/*timeout happens*/) { echo '<meta http-equiv=REFRESH CONTENT=3;url=login.php>'; } 可是我不知道/*timeout happens*/ 應該要寫什麼~ 可以請各位大大幫忙嗎? 我有先找過一堆資料了~可是沒有找到我想要的~ 所以來這邊問問看各位~肛溫~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 76.170.150.223

06/15 10:21, , 1F
session過期後就自動消失了啊? 檢查session即可
06/15 10:21, 1F

06/15 10:21, , 2F
那個timeout happens是登出頁面嗎
06/15 10:21, 2F

06/15 10:22, , 3F
如果你是要登入後經過一定時間自動轉向 php做不到
06/15 10:22, 3F

06/15 10:23, , 4F
檢驗登出的話 填 !$__SESSION['un']
06/15 10:23, 4F

06/15 10:23, , 5F
請把你的過期時間算出來輸出給html或js做處理
06/15 10:23, 5F

06/15 10:23, , 6F
讓登入的瀏覽者在時間到了之後自動轉出即可
06/15 10:23, 6F

06/15 10:25, , 7F
那個timeout happens <意思好像是登出轉到登入頁面
06/15 10:25, 7F

06/15 10:26, , 8F
原po你用的語法 跟我的好像XD
06/15 10:26, 8F

06/15 10:36, , 9F
謝謝大家回答~!!我是想要每跳到一個新的php檔時,就檢查有
06/15 10:36, 9F

06/15 10:36, , 10F
沒有登入~session有沒有timeout~
06/15 10:36, 10F

06/15 10:37, , 11F
照m大說的~那我只要每次都檢查isset($_SESSION)就可以順便
06/15 10:37, 11F

06/15 10:39, , 12F
檢查到session有沒有timeout了嗎?
06/15 10:39, 12F

06/15 10:40, , 13F
回a大~對~我先登入了~但是如果session timeout了~我想要跳
06/15 10:40, 13F

06/15 10:41, , 14F
出去登入的頁面~讓使用者在登入一次
06/15 10:41, 14F

06/15 10:45, , 15F
另外~m大說的~過期時間部分~可是我該怎麼知道哪個點要算呢
06/15 10:45, 15F

06/15 10:45, , 16F
? 沒有那種~比如我設定60秒~60秒他一過期~就有個flag可以
06/15 10:45, 16F

06/15 10:46, , 17F
去判斷~session是否過期了嗎?
06/15 10:46, 17F

06/15 10:53, , 18F
如果你一定要用php來判斷 時間到自動登出 可以用
06/15 10:53, 18F

06/15 10:56, , 19F
php時間函數+判斷有沒有登出
06/15 10:56, 19F

06/15 11:01, , 20F
謝謝a大~我沒有一定要用php來判斷>"<~我想知道一個大家比
06/15 11:01, 20F

06/15 11:02, , 21F
較常用~比較直接簡單的方法XD 以後有要做這種東西~我就會
06/15 11:02, 21F

06/15 11:02, , 22F
的方式>"<
06/15 11:02, 22F

06/15 13:50, , 23F
謝謝大家!!!!我研究出來了!!XDD 感恩!!!!
06/15 13:50, 23F

06/15 15:40, , 24F
其實最簡單就用meta 的refresh功能 設定幾秒更新一次
06/15 15:40, 24F

06/15 17:32, , 25F
不是isset($_SESSION) 是檢查你放進$_SESSION的某個變數
06/15 17:32, 25F

06/15 17:32, , 26F
是不是沒了 例如isset($_SESSION['uid'])之類的
06/15 17:32, 26F

06/15 17:33, , 27F
把你網站需要的session集中在一個陣列或物件裡 登出就
06/15 17:33, 27F

06/15 17:34, , 28F
unset() 檢查登入過期就isset() 這樣多個網站才不會
06/15 17:34, 28F

06/15 17:35, , 29F
因為session_destroy()這種原子彈函數互相干擾
06/15 17:35, 29F

06/16 00:19, , 30F
謝謝大家^^
06/16 00:19, 30F
文章代碼(AID): #1D-186xV (PHP)