问个session很简单的问题,我可能是在哪陷着了。
程序员文章站
2022-04-06 15:48:41
...
php用session值进行用户是否登录的判断,我常看到这样的例子:
就是有一个表单,输入 用户名和密码,然后在一个php页面进行验证,如果验证成功(就是从数据库中查找是否有用户名和密码相匹配),就生成如下sessoin
$_SESSION['username'] = 'csdn';
$_SESSION['pwd'] = 'pwd';
然后在其他页面进行判断 $_SESSION['username'] 是否为空,如果不为空,说明是登录了。。。
那我的问题就来了:$_SESSION 不是存在服务器上的吗?那多个用户登录了,$_SESSION['username'] 岂不是被重置了好多次,服务器怎么正确给客户端做区分呢???
我都晕了,我感觉 很简单的事,结果我愣是想不明白。。。肯定 是我哪里理解错了,请帮我指出来。
谢谢了
的确是这样的,我昨天自己也搞明白了的。我在两个浏览器,试,发现服务器生成 了两个不同的id,然后打开看,里边内容都是如下两个变量,所以确实是用sess_id来区分的。我搞明白了的。。。
就是有一个表单,输入 用户名和密码,然后在一个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";