客戶: start_session()
創建的cookie(默認):Name: PHPSESSID; Content: 1q2w3e4r5t; Domain: '/'; Expires:...
如果會話存儲在文件中,爲什麼仍然使用cookie來存儲它們?
SERVER: 它還創建存儲在一個文件(我的情況):/var/lib/php/sessions
。在那裏打電話:sess_1q2w3e4r5t
。 (絕對路徑:/var/lib/php/sessions/sess_1q2w3e4r5t
)
所以我們有兩個物理東西綁定到我剛創建的會話。
兩者有什麼關係?
無論
use_only_cookies
選項如何,我可以將我的會話存儲在/var/lib/php/sessions
嗎?我有一個
$_SESSION['counter']
變量的經典示例。這意味着,每當我重新加載example.php
頁面時,$_SESSION['counter']
遞增(++
)一。因此,在按下F5
按鈕的循環中,可以說我獲得了55
作爲值$_SESSION['counter']
。最後是我的那個cookie,但是不是的/var/lib...
文件。刪除後我得到一個56
和循環繼續正常。這只是讓我感興趣,並讓我回答這個問題。會話Cookie是必需的嗎?仍然有可能的方式,我的網站只存儲會話只在服務器和不使用cookie?
這就是我如何刪除cookie。通知counter
值是69
然後F5
:
咦?如果沒有cookies,你的所有請求都將是無狀態的。 – emaillenin
但是就像我說的,刪除cookie後,'$ _SESSION ['counter']'仍然保持相同的值...糾正我,如果我錯誤地將它作爲一種請求 –
你可能混淆了刪除cookie與刪除會話或會話變量不同?你必須在PHP中使用'unset($ _ SESSION ['counter'])'來丟失*它的值。 –