Re: [請益] cookie可不可以這樣當成session來用?
※ 引述《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
11/30 17:51, 1F
→
11/30 17:51, , 2F
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
11/30 18:04, 5F
→
11/30 18:05, , 6F
11/30 18:05, 6F
→
11/30 18:05, , 7F
11/30 18:05, 7F
→
11/30 18:06, , 8F
11/30 18:06, 8F
推
12/01 12:52, , 9F
12/01 12:52, 9F
→
12/01 12:52, , 10F
12/01 12:52, 10F
→
12/01 12:53, , 11F
12/01 12:53, 11F
推
12/01 15:47, , 12F
12/01 15:47, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
-4
11