我在我的个人CMS上使用codeigniter缓存。问题是,如果用户登录管理,我不想显示缓存页面。为登录用户禁用Codeigniter的缓存
看到在谷歌这个教程: http://www.badpenguin.org/codeigniter-cache-disable
class MY_Output extends CI_Output {
function _display_cache(&$CFG, &$URI)
{
/* Simple Test for Ip Address */
if ($_SERVER['REMOTE_ADDR'] == NOCACHE_IP)
{
return FALSE;
}
/* Simple Test for a cookie value */
if ((isset($_COOKIE['nocache'])) && ($_COOKIE['nocache'] > 0))
{
return FALSE;
}
/* Call the parent function */
return parent::_display_cache($CFG,$URI);
}
}
是,本次会议是在数据库(ci_sessions),我不能访问它里面MY_Output问题。
使用:
$CI =& get_instance();
$CI->session->userdata('userID')
给我:
Class 'CI_Controller' not found in
由于控制器输出之前运行,并且会话需要CIcontroller,我唯一可以在数据库和encription认为它禁用会话存储,我不想那么做。
有人可以告诉我一些吗?我仍然无法找到解决方案!
谢谢!
嗯,有趣的......如果答案波纹管没有帮助 - 而不是延长CI类的,这里是一个有趣的想法:HTTP:/ /goobbe.com/questions/1927427/disable-output-caching-in-codeigniter-for-logged-in-users - 基本上,你可以制作一些类似'预览'控制器的管理员输出不会被缓存的地方,所以他可以预览他所做的更改。这不是完美的解决方案,但它值得尝试... – sinisake
作为控制器之前的缓存加载,这不会工作。 –
那么..唯一的事情我可以做的就是停止使用数据库来存储缓存,我认为... –