我希望这还没有得到解答,我已经看了一段时间并且没有真正看到答案。
我正在使用Kohana 3.2会话和数据库驱动程序。问题是每次加载或刷新页面时,都会创建一个新的会话ID。
我在我的bootstrap中设置了Session :: $ default ='database'。我的会话配置如下所示:
return array(
'database' => array(
/**
* Database settings for session storage.
*
* string group configuation group name
* string table session table name
* integer gc number of requests before gc is invoked
* columns array custom column names
*/
'name' => 'trucero_session',
'lifetime' => 1200,
'group' => 'default',
'table' => 'sessions',
'gc' => 500,
'columns' => array(
/**
* session_id: session identifier
* last_active: timestamp of the last activity
* contents: serialized session data
*/
'session_id' => 'session_id',
'last_active' => 'last_active',
'contents' => 'contents'
),
),
);
提前谢谢。
答案 0 :(得分:1)
我不认为Laurent真的理解你的问题,因为在页面刷新之间应该只创建和使用一个会话ID - 这就是拥有会话的重点,这样你每次都可以重新使用同一个会话你访问一个页面。
当您使用新浏览器打开页面,或关闭现有浏览器然后打开新浏览器或销毁当前会话(如通过从页面注销)然后创建新会话ID时,会创建新会话ID新的(..by登录)。
但我确实在Kohana 3.2中发现了类似的问题,其中我的脚本每次读取页面时生成多个会话ID,并且会话未被“读取”回来,因为在每次页面刷新/访问时都创建了新的session_id。我能够将这个问题跟踪到谷歌Chrome浏览器(在我的情况下),在挖掘后我找到了这篇文章:
http://forum.kohanaframework.org/discussion/10303/session-problem-with-ie-and-chrome/p1
这基本上说你必须将Cookie :: domain设置为FALSE或特定域,以便Kohana数据库会话在Chrome和IE中正常工作。
答案 1 :(得分:0)
您不能依赖会话ID,因为它确实在每次请求时重新生成。如果您需要某种ID,则必须使用自定义ID。