作者heibow (危 險 心 靈)
看板PHP
標題[請益] cookie作用範圍的問題
時間Tue Feb 25 12:01:13 2014
如題 目前在寫一個小小的報名系統
架構大概是這樣
根目錄下的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
1F:→ danny8376:有跨目錄時請加上path參數 02/25 12:17
2F:→ heibow:有辦法在login的地方直接把路徑遞回到所有子目錄嗎? 02/25 12:35
3F:→ danny8376:整所有目錄共通的父目錄放cookie就行了 02/25 15:35
4F:→ danny8376:最簡單就是全放在/下 但如果這網址還有其他網站 02/25 15:35
5F:→ danny8376:就要自己注意狀到cookie的情況 02/25 15:35
6F:→ danny8376:反正cookie運作很簡單 你想像每望下一層目錄 02/25 15:36
7F:→ heibow:但是如果一直在子目錄中切頁面 就不會update cookie 02/25 15:36
8F:→ danny8376:就是另外一個function的內部 cookie能往下傳進去 02/25 15:37
9F:→ danny8376:但是不能往上傳 在下面改過的影響不了上面的範圍 02/25 15:38
10F:→ danny8376:所以你存cookie時只要確保都存在那個"夠上面"的目錄 02/25 15:39
11F:→ danny8376:這樣就不會有問題了 02/25 15:39