Heim  >  Artikel  >  Backend-Entwicklung  >  请教session的一个疑问

请教session的一个疑问

WBOY
WBOYOriginal
2016-06-23 13:32:301061Durchsuche

用户A在北京登录一个网站,生成$_session['success']=1;

用户B在上海登录同一个网站,生成$_session['success']=2;

这两个session值会不会有冲突和影响啊?B用户的值会不会覆盖掉A用户的啊,

session_id 和 PHPSESSID 是一回事吗?

这种问题是不是可幼稚,可是一直让我很困惑啊,


回复讨论(解决方案)

sessionid 与浏览器绑定,不同的浏览器进程有不同的 sessionid。与浏览器在什么地方无关
sessionid 由 web 系统维护,不会发生重复。之所以说是 web 系统 是因为并不只是 php 有 session
PHPSESSID 是 sessioid 的名字(识别标志)session_id 是他的值

你能理解$_GET这个东西吗,跟$_SESSION是一个道理

用户A在北京登录一个网站,生成$_session['success']=1;

用户B在上海登录同一个网站,生成$_session['success']=2;

这两个session值会不会有冲突和影响啊?B用户的值会不会覆盖掉A用户的啊,



那这个问题呢?

不会有重复的,其实你不需要去考虑这些的,你就当不可能重复就可以了,sessionid一般是用cookie传递的,保存在客户端浏览器上,PHPSESSID是session_id的名字

好像是有点幼稚哈哈哈!孩纸,session是根据不同客户端(浏览器)生成的,互不影响,别说是不同城市,你在同一台电脑上面用两个不同浏览器访问同一个网站,生成的同一个session名称的值也是不一样的

用户A在北京登录一个网站,生成$_session['success']=1;

用户B在上海登录同一个网站,生成$_session['success']=2;

这两个session值会不会有冲突和影响啊?B用户的值会不会覆盖掉A用户的啊,

session_id 和 PHPSESSID 是一回事吗?

这种问题是不是可幼稚,可是一直让我很困惑啊,



不会,如果会就天下大乱了。

session_id是与浏览器绑定的,唯一。是一次会话。
PHPSESSID 是session_id的名。

使用session_start()调用session,服务器端在生成session文件的同时,生成session ID哈希值和默认值为PHPSESSID的session name,并向客户端发送变量为(默认的是)PHPSESSID(session name),值为一个128位的哈希值。服务器端将通过该cookie与客户端进行交互.。

我测试了一下,终于明白了,

session是唯一的,一个用户,一个完全独立的session进程,因为手册和别的地方总是强调sesssion_id是唯一的,所以我一直搞不明白,如果是session设置的其它值,会不会冲突,比如 $_SESSION['logined']=true 

其实就是一个用户,对应一个完全独立的session进程,服务器上无论有多少个访客生成的session进程,都是互相独立,互不干涉的。

就像服务器一样,无论上面放了多少个虚拟主机,都是独立的,互不冲突,他们之间并没有什么关系的。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn