2011-12-30 69 views
2

在我的脚本中,每当更改会话标识时,CI都会更新数据库上的会话表。事情是,每当它发生变化时,我都需要知道该ID。简单地说,我想记录它在数据库上的一些不同的地方,同时保持实际的记录。我怎么能这样做?CodeIgniter - 哪部分代码正在更改和更新会话ID?

+0

我最好不要删除它,也许有人也会在未来寻找这样的答案。 – gzg 2011-12-30 04:39:04

+1

只要添加我的2p,只要Q/A是有效的,我认为它应该被保存为http://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question – Basic 2012-01-03 01:49:43

回答

1

找到我自己的答案。 system/libraries/Session.php line:383当然,行号可能会有所不同,但如果搜索以下字符串,您将了解CodeIgniter在数据库中更改session_id的位置:'session_id' => $new_sessid

+0

您可能有一个更基本的问题 - 只有在CI认为需要时才回收会话。当然,你可以像你所说的那样禁用它 - 但是你应该100%确定你知道为什么它正在回收,并且防止它不是问题 - 例如。 CI每隔一段时间就会重复一次会话,以使被盗会话难以用于对您的站点进行身份验证 - 您的意思是删除此安全功能吗?如果我是你,我会发现为什么它正在回收和修复,而不是 - 很可能它只是配置中的会话超时设置,但它可能是一些东西 – Basic 2012-01-03 01:47:11

+0

(如果它会帮助,我很乐意通过它与你并追查的基本原因) – Basic 2012-01-03 01:51:29

+0

@Basiclife,或者我问的问题不明显(可能不明显,我的坏),或者你误会了我。 :)你对安全问题是正确的。我不想破坏它,我想让它与我的基于会话的购物篮平行运行。这就是为什么我询问CodeIgniter在数据库中更改会话ID的原因 - 因为当它改变时,购物篮表中的值也会改变。 – gzg 2012-01-03 16:19:12