Heim  >  Artikel  >  Backend-Entwicklung  >  php存储session到到memcache里

php存储session到到memcache里

WBOY
WBOYOriginal
2016-06-23 14:02:17845Durchsuche

由于要跨顶级域名,所以我想把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的值会保持一样,但却存不进值。

请问如何解决这个矛盾?


回复讨论(解决方案)

session_start();
要在 ini_set("sessio... 之后执行

你是在脚本级改变 session 设置的,而 session.auto_start = 1 时,php 会在脚本执行前就隐式的调用 session_start()
这当然就不能符合你的需要了

由于这个sessionid值在不同的域名下会产生不同的值,那么我想,我在程序里,根据客户端的一些值来生成一个id。这样,就可以跨域,但是我又担心这样会有重复的。

所以我想了解一下,做过这种方式的朋友是具体如何做的?

参考ucenter

传递sessionid值,使用 session_id 函数指定sessionid值

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn