我正在使用Code Igniter,我正在实现一个记住用户功能。
基本上,从另一个堆栈溢出帖子,我以正确的方式实现了这个,我为该用户生成一个随机字符串,将其保存在数据库和cookie中。在网站加载时,我检查该cookie,如果找到该cookie,我在数据库中检查它。如果在数据库中找到它,则重新创建该用户的会话。
我遇到的问题是我加载网站时。我得到了cookie的值,我也从AJAX调用得到正确的响应。但是,我必须单击链接才能重新创建会话(例如,为登录用户显示菜单等等)。
我正在考虑在调用主控制器的索引方法之后重新创建会话。我怎样才能在Code Igniter中解决这个问题?我在哪里可以把这个代码放在每个页面上首先运行的代码?例如,如果用户进入网站的联系我们页面而不是主页,我也想重新创建会话。
非常感谢提前。
答案 0 :(得分:2)
CodeIgniter允许开发人员创建在调用控制器方法之前的不同时刻调用的挂钩。
以下是如何使用挂钩的简短说明:
http://codeigniter.com/user_guide/general/hooks.html
如果你想访问会话,我建议使用post_controller_constructor
钩子,它在执行控制器构造函数之后但在调用action方法之前调用。 (access the CI session in a pre controller codeigniter hook)