0

当用户 cookie 被删除时,我们如何保持会话值?

 <?php
    session_start();
  echo $_SESSION['userdata']['name']='bikash';
?>

如果用户删除 cookie,我的会话值已删除。请指教。

4

6 回答 6

10

因为会话 ID 存储在 cookie 中。如果用户删除它,那么您将无法恢复它。

于 2013-07-05T12:32:35.367 回答
2

删除 cookie 后,会话 ID 以及该 cookie 中的会话 ID 都会被删除。据我所知,如果 cookie 被删除,则无法获取会话 ID

于 2013-07-05T12:33:45.230 回答
2

正如rid 已经说过的,会话标识符存储在每个用户的 cookie 中。因此,当他们删除 cookie 时,会话标识符也消失了,因此无法session_start重新启动前一个会话。相反,它将开始一个新的,没有数据。

如果您有其他方法可以将前一个会话分配给用户,例如,如果您有一个将 ip 地址映射到会话 ID 的数据库(坏主意!),那么您可以使用session_id().

于 2013-07-05T12:37:06.303 回答
1

它自己的会话 ID 存储在 cookie 中。

如果用户删除它,那么您将无法访问与会话相关的任何信息,因为无法引用它。

换句话说,您删除了浏览器 cookie,会话被删除,因为会话被存储为 cookie!

于 2013-07-05T12:35:26.707 回答
1

正如其他海报所提到的,cookie 包含访问会话所需的会话 ID。但是,除非您执行session_destroy()实际会话数据,否则仍然可以在存储会话文件的目录中找到。

于 2013-07-05T12:36:32.503 回答
1

如果 cookie 在 cookie 中被删除,您将无法恢复 sessoin id。

于 2013-07-05T12:40:54.510 回答