SESSION值传递的问题

WBOY
リリース: 2016-06-06 20:37:19
オリジナル
865 人が閲覧しました

$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.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート