【问题标题】:How does a webserver differenciates requests from different browsers on the same PC with boolean session variables?网络服务器如何使用布尔会话变量区分来自同一台 PC 上不同浏览器的请求?
【发布时间】:2017-01-05 11:39:38
【问题描述】:

当您在用户登录 PHP 时设置布尔会话变量时:

$_SESSION['logged_in'] = true;

由于这个会话变量是一个布尔值而不是一个数字,并且会话变量存储在the server not the user Computer 上,我希望任何浏览器(用户)访问该站点的某个人(另一个浏览器)已经登录,应该自动已登录,因为会话变量的布尔值为 true,而不是不同用户的唯一编号,并且已在服务器上设置。

即使设置了布尔会话,服务器如何识别特定浏览器尚未访问该站点。

【问题讨论】:

标签: php apache session


【解决方案1】:

每个浏览器的会话都是唯一的,而不是每个计算机/IP 等等。浏览器将存储一个所谓的会话 cookie,该 cookie 将随每个请求发送回服务器,从而允许服务器识别用户。每次在 $_SESSION 超级全局中存储一些东西,这个值都会被记录在当前用户的会话中,其他人是看不到的。

延伸阅读:http://php.net/manual/en/book.session.php

【讨论】:

    【解决方案2】:

    我想这会回答你的问题How do PHP sessions work? (not "how are they used?")

    tldr; 一般情况下:

    • 创建会话时会将会话 ID 发送给用户。
    • 它存储在 cookie 中(默认情况下称为 PHPSESSID)
    • 该 cookie 由浏览器随每个请求发送到服务器
    • 服务器 (PHP) 使用包含 session_id 的 cookie 来了解哪个文件对应于该用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多