日期:2014-05-16  浏览次数:20548 次

关于 session 的问题
前提:
脚本语言: PHP/服务器:Linux
服务器端用一个 $_SESSION["login"] 和 $_SESSION["username"] 来记录用户是否登录和用户名

问题如下:
A1 / A2 指的是新打开的浏览窗口(注意:是新打开的窗口,而非标签

情况1:在电脑 A 上的浏览器 A1 有一个用户登录了,但未退出。设置了 $_SESSION["login"] = "true" ;$_SESSION["username"] = "A" ;
这时在电脑 A 上的浏览器 A2 有一个相同或不同的用户退出了。设置了 $_SESSION["login"] = "false" ;并且 unset( $_SESSION["username"] )

问题1:这时电脑 A 上的浏览器 A1 用户的 $_SESSION["login"] 的值是多少? $_SESSION["username"] 的值是否还在?

情况2:在电脑 A 上的浏览器有一个用户登录了,但未退出。设置了 $_SESSION["login"] = "true" ;$_SESSION["username"] = "A" ;
这时在电脑 B 上的浏览器有一个相同或不同的用户退出了。设置了 $_SESSION["login"] = "false" ;并且 unset( $_SESSION["username"] )

问题2:这时电脑 A 上的浏览器的 $_SESSION["login"] 的值是多少? $_SESSION["username"] 的值是否还在?

问题3:以上问题就是服务器端只用一个 session key 还记录值,不同的客户端的会不会操作对其他客户端造成影响。

100分在线等答案

谢谢!

------解决方案--------------------
每个独立的浏览器进程,将产生一个 session key
注:多选项卡的浏览器只算一个进程

其他问题你动动手就知道了
------解决方案--------------------
你可以认为一个浏览器只能登陆一个用户,在一个选项卡或窗口登陆或退出,刷新另一个窗口也会同步