Re: [請益] cookie可不可以這樣當成session來用?

看板PHP作者 (tka)時間17年前 (2008/11/30 17:25), 編輯推噓3(309)
留言12則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《kusoayan (阿雁 < 小弟 ~*)》之銘言: : session代表使用者開啟瀏覽器連線網站, : 一直到關閉瀏覽器為止的工作期間, : 此期間不論使用者瀏覽該網站的任何網頁, : 甚至離開網站後又回來,對於該網站而言都是同一個Session。 : 既然如此 : 那我能不能用setcookie : 然後不指定到期時間(隨者瀏覽器關閉而結束) : 這樣一來不就類似session了 ? : 請問 能用這種方式把cookie當session用嗎? cookie 基本上分兩種 一種是有期限的 以下稱為 normal cookie 一種是沒有期限的 瀏覽器關掉就結束的 以下稱為 session Cookie 在IE裏面"清除cookie"代表的是清除 normal Cookie 至於session Cookie並不會被清除掉 在FireFox裏面則是 兩個都會被清除掉 其他瀏覽器我不清楚 再來講到php 裏面的session預設的實作方式 會抓取 Cookie裏面的PHPSESSID 這個值當作 取得session資料的index 這個PHPSESSID預設是 session cookie 至於session的資料可以存在 file ,database,memcache......裏面 所以當瀏覽器連線到server時,若PHP的session功能有啟動 就會去找cookie裏面的PHPSESSID 是否存在 如果存在就去把session的資料 倒到$_SESSION裏面 如過不存在 就塞一個進去 並且讓$_SESSION=array(); 所以session的存在關鍵在於說 1. cookie 要撈取session用的index存在與否 2. 儲存session的位置,裏面是否有符合該index的值 當上述兩項成立時 session方才存在。 基於以上的實作方式 可以得知session 再調整後可以讓他,與瀏覽器的關閉與否無關 只要把PHPSESSID設成normalcookie並且保存server side的session資料便可 所以回到原來的問題 由上述cookie 與 session的關係得知 cookie與session最大的差異在於 資料的存放位置不同 client side V.S. server side 所以如果你的資料是可以給使用者瀏覽及修改的,那可以放到session cookie沒問題 反之 則應該將其資料放置於session 當然你可以加密後放到session cookie中,這也是一種作法 以上有錯請指正 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.44.185 ※ 編輯: tka 來自: 220.133.44.185 (11/30 17:26) ※ 編輯: tka 來自: 220.133.44.185 (11/30 17:28)

11/30 17:51, , 1F
能放在cookie裡面的資料,就不要用session來做。
11/30 17:51, 1F

11/30 17:51, , 2F
cookie不吃伺服器資源,session會。當網站非常忙碌
11/30 17:51, 2F

11/30 17:52, , 3F
的時候,這是會造成主機負荷差異的。
11/30 17:52, 3F

11/30 18:01, , 4F
瞭解了 受教,謝謝 :) !
11/30 18:01, 4F

11/30 18:04, , 5F
其實一直認為 如果因為讀取session會倒置網站
11/30 18:04, 5F

11/30 18:05, , 6F
的loading到不能接受到程度 也是一件很神奇的事情
11/30 18:05, 6F

11/30 18:05, , 7F
在這之前 database應該會先掛掉才是吧
11/30 18:05, 7F

11/30 18:06, , 8F
不過可能是因為我沒這麼多人同時使用的經驗吧
11/30 18:06, 8F

12/01 12:52, , 9F
請小心判斷什麼是"能"放在cookie裡面的資料
12/01 12:52, 9F

12/01 12:52, , 10F
任何你不想讓user看到的東西都不該放在cookie
12/01 12:52, 10F

12/01 12:53, , 11F
另外cookie的size是有限制的 不能放太多東西
12/01 12:53, 11F

12/01 15:47, , 12F
推樓上。該用session的時候要用。
12/01 15:47, 12F
文章代碼(AID): #19CbmZsY (PHP)
文章代碼(AID): #19CbmZsY (PHP)