SESSION值传递的问题
$_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常用的用途是在里面存储的用户登录相关的信息,如果共享了岂不是乱了,管理员和普通用户信息串在一起,真是天下大乱了。