欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

SESSION值传递的问题

程序员文章站 2022-06-06 16:57:04
...
$is_vip = $_GET['is_vip'] ? $_GET['is_vip'] : 0;
$_SESSION['is_vip'] = $is_vip;
.........
var_dump($_SESSION['is_vip']);
如果2个用户(或者很多人)同时访问,一个(一半)访问不带?is_vip=1的,一个(一半)访问带?is_vip=1, 那么这2个人最终打印出来的结果会一样么?

自己的理解是SESSION是全局的,有没有可能当带is_vip=1的用户在打印出来之前,不带is_vip=1的用户访问页面将SESSION['is_vip']的值设为0,这样2个人最终打印出来的都是0或者1(相反的情况)

回复内容:

$is_vip = $_GET['is_vip'] ? $_GET['is_vip'] : 0;
$_SESSION['is_vip'] = $is_vip;
.........
var_dump($_SESSION['is_vip']);
如果2个用户(或者很多人)同时访问,一个(一半)访问不带?is_vip=1的,一个(一半)访问带?is_vip=1, 那么这2个人最终打印出来的结果会一样么?

自己的理解是SESSION是全局的,有没有可能当带is_vip=1的用户在打印出来之前,不带is_vip=1的用户访问页面将SESSION['is_vip']的值设为0,这样2个人最终打印出来的都是0或者1(相反的情况)

每个用户都有对应独立的session_id,你登录了sf.gg,服务器会产生一个session_id并将它通过cookie的方式传递到客户端,每次访问都会带上这个cookie,所以是唯一的。
PHP默认将session以文件的形式储存在指定路径中。
参考:PHP session原理

SESSION不是全局的,每个浏览器用户都对应着不同的SESSION,所以你提到的两个用户他们是互相不影响的。

session是每个用户的私有数据,session常用的用途是在里面存储的用户登录相关的信息,如果共享了岂不是乱了,管理员和普通用户信息串在一起,真是天下大乱了。

相关标签: php session