首页  >  文章  >  后端开发  >  问个session很简单的问题,我可能是在哪陷着了。

问个session很简单的问题,我可能是在哪陷着了。

WBOY
WBOY原创
2016-06-23 13:34:42972浏览

php用session值进行用户是否登录的判断,我常看到这样的例子:
就是有一个表单,输入 用户名和密码,然后在一个php页面进行验证,如果验证成功(就是从数据库中查找是否有用户名和密码相匹配),就生成如下sessoin
$_SESSION['username']  = 'csdn';
$_SESSION['pwd']  = 'pwd';


然后在其他页面进行判断 $_SESSION['username']  是否为空,如果不为空,说明是登录了。。。

那我的问题就来了:$_SESSION 不是存在服务器上的吗?那多个用户登录了,$_SESSION['username']  岂不是被重置了好多次,服务器怎么正确给客户端做区分呢???

我都晕了,我感觉 很简单的事,结果我愣是想不明白。。。肯定 是我哪里理解错了,请帮我指出来。
谢谢了


回复讨论(解决方案)

$_SESSION 由 session_start 函数产生
而 $_SESSION 的内容是 session_start 依据传入的 cookie 赋值的
所以不会出现你疑惑的情况

也就是说用户甲的 $_SESSION 和用户乙的 $_SESSION 虽然都是 $_SESSION,但内容是不一样的

session 会有一个从客户端传过来的session_id来标识不同的用户的,这个session_id是唯一的,所以楼主不用担心会混乱。 

每个通话都是唯一的...也就是上面所说到的 session_id,所以每一次浏览器和服务器端建立起通话的时候这个ID 都是唯一的,服务器会进行判断 我在和谁进行通话.

每个用户是基于seesion_id()来识别数据,$_SESSION的值是不一样的。


session 会有一个从客户端传过来的session_id来标识不同的用户的,这个session_id是唯一的,所以楼主不用担心会混乱。 



的确是这样的,我昨天自己也搞明白了的。我在两个浏览器,试,发现服务器生成 了两个不同的id,然后打开看,里边内容都是如下两个变量,所以确实是用sess_id来区分的。我搞明白了的。。。
session_start();$_SESSION['user'] = "baijiangkun";$_SESSION['pwd'] = "qinghai";var_dump($_SESSION);echo "s";
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn