看板 PHP 關於我們 聯絡資訊
各位先進小弟有一程式問題始終不解,還請大大幫忙。 情境式使用者登入後透過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
MOONRAKER: 正確而言是在每一次執行流程的最前面 不過你要所有檔案 05/13 16:47
MOONRAKER: 都放也可以 反正第一次以後會忽略 05/13 16:47
MOONRAKER: 下一個問題是不會 $_SESSION裡面的值跟一般變數無關 05/13 16:48
MOONRAKER: 一般而言php的session很可靠 超過設定時間或reboot才會 05/13 16:49
MOONRAKER: 消失 先查到你平台上的session lifetime 然後看你的 05/13 16:54
MOONRAKER: session loss間隔 loss間隔大於lifetime那很合理 05/13 16:54
MOONRAKER: 反過來就有問題 05/13 16:54
xdraculax: 被同一個伺服器上別的網站清了? session_save_path 05/13 17:29
rjackie: 請問M大您指的是session.gc_maxlifetime嗎? 另外loss是? 05/13 19:00
rjackie: 被別的網站清了? 掛在GCP機器上會有這問題? 05/13 19:02
rjackie: 第一次遇到這問題,找不到解 05/13 19:02
MOONRAKER: session loss就是你session消失事件 不是專有名詞 05/14 00:54
Darkland: https://goo.gl/gGmulC 如果你是用 app engine 的話 05/14 09:06
Darkland: 要注意 appengine 是用 memcache 來存 session data 05/14 09:06
Darkland: 而且他預設的 lifetime 很短 05/14 09:07