codeigniter - 无法维护购物车会话,因为CI数据库会话管理代码重新生成会话ID

时间:2010-12-06 11:47:23

标签: codeigniter php

  1. 我正在显示一个产品部分,其中有一个添加到购物车按钮。
  2. 用户可能已登录,也可能未登录。
  3. 我没有在会话中维护购物车项目,而是将当前会话ID作为参考在数据库中维护。
  4. 在几次导航或默认会话超时后,将重新生成会话ID。
  5. 因此,当前会话ID与用户在数据库中添加的项目不匹配。
  6. 因此我在页面顶部显示的总项目和金额为零。
  7. 我在之前的项目中维护过购物车项目,所以我没有遇到任何问题。
  8. 我正在使用代码点火器框架工作
  9. 我该怎么做才能同步codeigniter的重新生成的会话ID和购物车项目的会话ID。我在codeigniter中使用Native Session而不是codeigniter附带的默认会话管理。原因是会话在IE6中不起作用,因为我希望IE6不理解CI的标题或类似的东西。

    我想仅在数据库中维护购物车项目。我该怎么办?

2 个答案:

答案 0 :(得分:1)

或者您可以使用Native Session of CI

答案 1 :(得分:0)

您可以使用标准PHP会话 - 跟踪您自己的会话ID并将其存储在数据库中。完全跳过重新生成的CI-SessionID。

http://www.php.net/manual/en/session.examples.basic.php

当然,这方面的缺点是会话不会以这种方式存储为cookie,所以当用户的会话到期时 - 他们会失去他们的篮子。但您可以使用手动cookie存储区自行解决此问题,或强制用户注册/登录以保存购物篮数据。