客户端:
start_session()
创建了一个Cookie(默认情况下):Name: PHPSESSID; Content: 1q2w3e4r5t; Domain: '/'; Expires:...
服务器
它还会创建一个存储在(我的情况)中的文件:/var/lib/php/sessions
。在那里打电话:sess_1q2w3e4r5t
。 (绝对路径:/var/lib/php/sessions/sess_1q2w3e4r5t
)
所以我们有两个物理事物与我刚刚创建的会话相关联。
两者兼得的重点是什么?
我可以将会话存储在/var/lib/php/sessions
而不管use_only_cookies
选项吗?
我有一个$_SESSION['counter']
变量的经典示例。这意味着,每次我重新加载example.php
页面时,$_SESSION['counter']
增量(++
)都会增加一个。因此,在按下F5
按钮的循环中,假设我将55
作为$_SESSION['counter']
的值。最后我是那个cookie但不 /var/lib...
文件。删除后我得到 56
,循环继续正常。这只是引起了我的兴趣,让我得到了这个问题。是否需要会话cookie?
我的网站是否只能将会话仅存储在服务器中而不使用Cookie?
这是我删除cookie的方式。通知counter
值为69。
datatable documentation for clear()
然后F5
:
答案 0 :(得分:0)
cookie就在那里,以便客户端可以告诉服务器哪个会话文件是他们的。 cookie值对应于在服务器上创建的文件。
没有它,服务器只会为客户端创建一个新的会话文件,显然上一个请求中的数据都不会存在。
我只能想象你没有正确删除cookie。
答案 1 :(得分:0)
访问您网站的访问者被分配了一个唯一的ID,即 所谓的会话ID。这可以存储在用户的cookie中 在URL中传播或传播。
简而言之:没有cookie,客户将成为一个奇怪的访客