在一个codeigniter应用程序中使用常规(4kb)会话和数据库会话?

时间:2012-05-09 20:54:37

标签: codeigniter session-cookies

所以我有一个我们在codeigniter上构建的框架。它默认使用常规的codeigniter会话,允许在cookie上加密最多4kb的存储空间。

它适用于需要注册过程的一般应用程序,由于问题是通过管理面板动态生成的,因此注册过程可能会有所不同。注册过程依赖于会话数据,因为它在整个过程中重定向。

我过去曾经使用过db_sessions,当时我知道这会是框架上的一个问题,但是,我现在正在考虑使用db_session进行注册过程的可能性,并且网站的其余部分使用4kb cookie会话。

这可能吗?看起来这可能是一个非常糟糕的主意,但我真的不想重做动态注册过程或者真正使用db_session来整个网站,因为如果有太多用户同时在线,它最终会使网站运行得非常慢。

所以我想我只能在加载注册控制器时将config中的变量设置为true(通过$ _SERVER或uri帮助器检查url,如果我可以在配置中加载它我是猜测我不能。)

这看起来似乎有道理吗?

1 个答案:

答案 0 :(得分:2)

  

看起来这可能是一个非常糟糕的主意

您回答了自己的问题:)当用户从一个页面切换到另一个页面时,您会遇到问题。如果他们打开多个窗口,按下“后退”按钮等会发生什么。您需要在开始注册时切换cookie,并在最后切换回来。基本上没有收获,这将非常非常混乱。

  

但我真的不想重做动态注册过程或   确实使用db_session作为整个站点,因为它最终将成为   如果有太多用户同时在线,网站运行速度非常慢。

现实是;通过在会话中使用数据库,您的网站必须具备任何实际性能问题。如果您没有使用数据库,那么您依赖于存储在用户计算机上的cookie。根据您的网站,这意味着他们可以编辑该Cookie并更改“admin = true”或其他内容。

只使用数据库会话 - 我认为你的情况过于复杂。