[請益] cookie作用範圍的問題

看板PHP作者 (危 險 心 靈)時間11年前 (2014/02/25 12:01), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
如題 目前在寫一個小小的報名系統 架構大概是這樣 根目錄下的login.php會把index.php所post過來的帳號密碼檢察過 然後把帳號跟暱稱存到cookie 時效半小時 根目錄以及子目錄下的所有頁面在一開始的地方都會檢查cookie是否已unset 若unset則告知閒置過久請重登入 若否 則重新set cookie 時效半小時 並在網頁上方echo出user的暱稱以及歡迎詞 若登出則setcookie('userid','',time()-3600); 現在遇到兩個問題 第一是在login.php中 若是要在setcookie後的下一行直接echo該cookie chrome會顯示Undefined index:userid 第二是當我以a身份登入並流覽完網頁 登出以b重登入 在根目錄下的頁面的歡迎詞 還有讀到的cookie都是b的身份 但a所流覽過的子目錄的頁面讀到的cookie還有顯示的歡迎詞卻都還是a的 感覺有點像是子目錄的cookie是local variable 我在logout.php做的setcookie('userid','',time()-3600); 只有把golbal variable清掉 請問是否有高手可以建議一下 架構要怎麼修改比較好呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.160.247

02/25 12:17, , 1F
有跨目錄時請加上path參數
02/25 12:17, 1F

02/25 12:35, , 2F
有辦法在login的地方直接把路徑遞回到所有子目錄嗎?
02/25 12:35, 2F

02/25 15:35, , 3F
整所有目錄共通的父目錄放cookie就行了
02/25 15:35, 3F

02/25 15:35, , 4F
最簡單就是全放在/下 但如果這網址還有其他網站
02/25 15:35, 4F

02/25 15:35, , 5F
就要自己注意狀到cookie的情況
02/25 15:35, 5F

02/25 15:36, , 6F
反正cookie運作很簡單 你想像每望下一層目錄
02/25 15:36, 6F

02/25 15:36, , 7F
但是如果一直在子目錄中切頁面 就不會update cookie
02/25 15:36, 7F

02/25 15:37, , 8F
就是另外一個function的內部 cookie能往下傳進去
02/25 15:37, 8F

02/25 15:38, , 9F
但是不能往上傳 在下面改過的影響不了上面的範圍
02/25 15:38, 9F

02/25 15:39, , 10F
所以你存cookie時只要確保都存在那個"夠上面"的目錄
02/25 15:39, 10F

02/25 15:39, , 11F
這樣就不會有問題了
02/25 15:39, 11F
文章代碼(AID): #1J31MCHQ (PHP)
文章代碼(AID): #1J31MCHQ (PHP)