作者HuangJC (吹笛牧童)
看板PHP
標題Re: [請益] 請問session的SID
時間Tue Jul 22 21:51:00 2008
: → richer :不同的視窗擁有不同的 SID 07/21 14:01
: → richer :phpBB的登入以SID為主 自動登入時才看cookie資料~ 07/21 14:04
: → HuangJC :對,我現在得找到設定,讓 cookie 跨視窗 07/21 14:28
: → HuangJC :因為我們在 CakePHP 那端的程式辦到了 07/21 14:28
: → weiyucsie :看看是不是cakephp cookie的expires有設定日期 07/21 15:01
: → HuangJC :在 firefox 不會有這個BUG,日期是狠狠設到一年 07/21 15:08
: → HuangJC :耶,感謝,cookie 太多看亂了;真的有一個設IE關閉清除 07/21 15:22
今天又找到一個
全域搜尋時沒找出來
設定 sid 關閉時清除的有兩個地方,只要一個沒設時間,BUG 就出現了
: → starjou :it depends on browser 07/22 01:24
: → starjou :IE6 如果你在現有視窗按 ctrl-N,session 會共用 07/22 01:24
: → starjou :從功能表開,會是新 session 07/22 01:25
: → starjou :ie7 我就沒再去試了 07/22 01:25
: → HuangJC :雖然如此,但以最大相容來說,我不能規範user怎麼去開 07/22 09:45
: → HuangJC :而是必需把 cookie time 設值,不要設 0 07/22 09:45
: → starjou :我是覺得你要做的應該不是去假設 user 有沒有 login 07/22 20:17
: → starjou :而是決定 user 跑某個頁面的時候需不需要 login 07/22 20:17
: → starjou :以及某功能能不能多重 login 07/22 20:17
: → starjou :然後發展你的過濾機制,要求 login or etc .... 07/22 20:18
目前是打算這樣補強
因為抓來的程式不清楚有什麼機制
所以乾脆自己寫一個 relogin
其實現在也幾乎清楚了,問題是我們不能冒險
據前面說的,IE 關閉,cookie 就清除,那 IE 只要關閉重開就一定是登出的
不過另一個主管以前玩過 Phpbb,他說重開視窗還是在,並沒登出
於是我查了一下才發現,所謂 auto login 是這個意思
cookie 內儲存登入的 User ID 及 Session ID
當關閉 IE 時,Session 清除但 UID 不清除
這樣倒節省不少 DB 空間
畢竟 Session 可能隨設計不斷長大,裏面儲存我所有"動作"
但 IE 都關了,動作何必儲存?就清空它
而 user 如果再次打開 IE,我就馬上 Auto Login
難怪它把 SID 設為 IE 關閉即清除
而 UID 卻保留一年
autologin 要小心造假,所以又埋了個 MD5 密碼
整體來說是這樣
所以我可能還原它原來的機制,再跳過 MD5 檢查
自己寫個 autologin 出來
因為 cake 那邊也有一個 session 概念,我同步去查它就好了
;;
如果我不發展新概念
即使 Phpbb 這邊和 Cake 那邊設定同樣的 session 存活時間
也可能一直操作 Cake 而 Phpbb timeout 登出
因此無論如何,不使用影子變數而真正去找尋同一個變數
一直是重要的
影子聖衣太差勁了 (啊,聖鬥士有沒有看 ^_^)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.65.16
→ xam :你應該要先讀一下cookie跟session的介紹.. 07/22 23:43
→ weiyucsie :推樓上XD 07/23 00:31
※ 編輯: HuangJC 來自: 61.219.65.16 (07/23 01:39)