php存储session到到memcache里
程序员文章站
2022-06-03 10:39:05
...
由于要跨*域名,所以我想把session存到memcache里,
于是做了下面的设置:
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://192.168.0.77:11200");
要报错:A session is active. You cannot change the session module's ini settings。
如果再这样设的话:session.auto_start =0
就能正常把session存入memcache里。
但是,这时,每刷新一次页面,那个sessionid值就变了,所以这样就获取不到先前存的值了,
把session.auto_start 的值设为1,每次刷新页面sessionid的值会保持一样,但却存不进值。
请问如何解决这个矛盾?
于是做了下面的设置:
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://192.168.0.77:11200");
要报错:A session is active. You cannot change the session module's ini settings。
如果再这样设的话:session.auto_start =0
就能正常把session存入memcache里。
但是,这时,每刷新一次页面,那个sessionid值就变了,所以这样就获取不到先前存的值了,
把session.auto_start 的值设为1,每次刷新页面sessionid的值会保持一样,但却存不进值。
请问如何解决这个矛盾?
回复讨论(解决方案)
session_start();
要在 ini_set("sessio... 之后执行
你是在脚本级改变 session 设置的,而 session.auto_start = 1 时,php 会在脚本执行前就隐式的调用 session_start()
这当然就不能符合你的需要了
由于这个sessionid值在不同的域名下会产生不同的值,那么我想,我在程序里,根据客户端的一些值来生成一个id。这样,就可以跨域,但是我又担心这样会有重复的。
所以我想了解一下,做过这种方式的朋友是具体如何做的?
参考ucenter
传递sessionid值,使用 session_id 函数指定sessionid值
上一篇: PHP获取网卡地址的代码_PHP教程
下一篇: PHP软件工程师怎么突破成长瓶颈