[請益] SESSION登入會自動失效

看板PHP作者 (向前走,才知道轉角)時間8年前 (2017/05/13 16:42), 編輯推噓0(0015)
留言15則, 4人參與, 最新討論串1/1
各位先進小弟有一程式問題始終不解,還請大大幫忙。 情境式使用者登入後透過session記錄帳號密碼在於每一頁中 判斷次否有值與驗證帳號密碼是否正確,紀錄程式如下: session_start(); $_SESSION['account_no'] = $post_account_pw_data['no']; $_SESSION['password'] = $post_account_pw_data['password']; 而每頁的驗證如下: if($_SESSION['account_no'] != "" AND $_SESSION['password'] != ""){ //資料庫查詢帳號密碼 if(empty($member_check_data['no'])){ echo "登入過期"; exit(); } }else{ echo "請先登入"; } 基本上是沒有什麼問題,但是最近開始出現不定期或是不定時會發生session遺失 造成使用者需要重新登入的問題。 想請教session_start();是否一定要放在所有網頁的最前端呢? 目前環境是架在GCP上使用PHP7 另外一個問題是,如果$_SESSION['account_no']是存在的,而其他程式產生 $account_no = x;這樣會影響到$_SESSION['account_no'] 的值嗎? 是否有什麼方式可以排除呢? 在拜託了,感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.19.62 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1494664931.A.105.html

05/13 16:47, , 1F
正確而言是在每一次執行流程的最前面 不過你要所有檔案
05/13 16:47, 1F

05/13 16:47, , 2F
都放也可以 反正第一次以後會忽略
05/13 16:47, 2F

05/13 16:48, , 3F
下一個問題是不會 $_SESSION裡面的值跟一般變數無關
05/13 16:48, 3F

05/13 16:49, , 4F
一般而言php的session很可靠 超過設定時間或reboot才會
05/13 16:49, 4F

05/13 16:54, , 5F
消失 先查到你平台上的session lifetime 然後看你的
05/13 16:54, 5F

05/13 16:54, , 6F
session loss間隔 loss間隔大於lifetime那很合理
05/13 16:54, 6F

05/13 16:54, , 7F
反過來就有問題
05/13 16:54, 7F

05/13 17:29, , 8F
被同一個伺服器上別的網站清了? session_save_path
05/13 17:29, 8F

05/13 19:00, , 9F
請問M大您指的是session.gc_maxlifetime嗎? 另外loss是?
05/13 19:00, 9F

05/13 19:02, , 10F
被別的網站清了? 掛在GCP機器上會有這問題?
05/13 19:02, 10F

05/13 19:02, , 11F
第一次遇到這問題,找不到解
05/13 19:02, 11F

05/14 00:54, , 12F
session loss就是你session消失事件 不是專有名詞
05/14 00:54, 12F

05/14 09:06, , 13F
https://goo.gl/gGmulC 如果你是用 app engine 的話
05/14 09:06, 13F

05/14 09:06, , 14F
要注意 appengine 是用 memcache 來存 session data
05/14 09:06, 14F

05/14 09:07, , 15F
而且他預設的 lifetime 很短
05/14 09:07, 15F
文章代碼(AID): #1P5iRZ45 (PHP)
文章代碼(AID): #1P5iRZ45 (PHP)