62,046
社区成员
在php程序,在程序1中定义了一个session变量,取值1,然后转到另外一个程序2页面,给该session变量付了另外一个取值2,过了一会,回到程序1,这个变量还是值1,回到程序2,该变量还是值2,感觉就像是局部变量一样,这是怎么回事?session变量不是全局变量吗?哪位大神遇到这个问题?之前
你发错板块儿了。
你这个session相当于是全局变量,所有页面都公用。然而你应该监控下页面的生命周期,看看是不是每次打开页面之后,代码在某个地方又重新赋值了。。
重复描述一遍。同一个session(A)变量,在同一部手机上,在微信的公众号客户端,本来是想用来共享数据的,启动程序1,给它赋予1,退出后,启动程序2,竟然找不到session(A),只能重新赋值2,然后退出,再启动程序1,发现session(A)还在,值还是1,退出程序1,再启动程序2,发现session(A)也还在,值还是2。两个程序,同一个session(A)变量,竟然互不侵犯,互不干扰,井水不犯河水。哪位能帮我解释解决这个问题?
我只有一个服务器,程序只是保存在不同的目录而已,不同的域名。跟域名有关吗?
你本地只是记录了一个 sessionid.
具体的session值,保存在服务器端。
所以你访问第一个程序,是1,第二个程序是2.
每个服务器的session键值对都是独立的。
这也是为什么,有些微服务需要共享session,可能通过redis,或者数据库等等的方式。
程序1,2不同的进程了,而且你问题都没表述清楚,取值1你都传2了那就是赋值了,那2的session怎么可能不一样
之前似乎也有码友遇到过这个问题,不知道是怎么解决的?