php - 如何使每个 php 脚本实例的 session 变量唯一?

标签 php session

好吧,假设我有一个 php 脚本,它有一些选择框,我想将选择的值存储在 session 数组中。到目前为止,我使用以下结构将值分配给 session 数组:

$_SESSION[SCRIPT_NAME]['filter_data']

SCRIPT_NAME 是我放置脚本名称的常量,这是为了使每个 php 脚本的 session 变量唯一。一切都很好,直到用户在两个或多个选项卡中打开相同的脚本以同时工作。在这种情况下,变量混合并且出现问题......

您是否知道如何使每个脚本实例的 session 变量绝对唯一?或者关于如何以不同方式实现功能的任何建议?

我现在可以在 URL 中传递我的变量,但我不喜欢这个选项。我想使用 session ,我希望我的网络应用程序的每个脚本在整个用户登录 session 期间记住用户的选择

最佳答案

“...如何使每个脚本实例的 session 变量绝对唯一?”

基本上答案是,“你不能”。这是因为浏览器的所有实例(窗口和选项卡)共享同一个 cookie jar。所以两个实例都返回相同的 cookie,并且它们连接到相同的 session 。这在“现实生活”中很少成为问题,但它会让开发人员抓狂,正如您现在看到的那样 ;-)

关于php - 如何使每个 php 脚本实例的 session 变量唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093372/

相关文章:

ruby-on-rails - 使用 Devise 的 Rails 中的 session 变量是 'session' 还是 'user_session'?

session - AZURE ACS 将身份与多个登录关联起来

java - Android Facebook sdk Session.OpenRequest(myFragment) 未定义?

php - 我必须发布关于使用 PHP 更改的选择选项,但是 JQuery 正在将选择转换为 ul li

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 如何停止正在监听 http ://127. 0.0.1:8000 的 symfony 进程

ruby-on-rails - Sencha Touch和Rails之间的用户/ session 管理(后端)

php - 匹配 {@layout=xxx} 的正则表达式

php - DB::update laravel 5 原始查询

ruby-on-rails - Rails 4 session cookie 未设置