我有一个使用codesigniter使用sessions类构建的应用程序,并将会话数据存储在数据库中。问题是当我的网页加载一个css文件时,我在我的数据库中获得额外的会话记录。
直到最近,我在rackspace提供的简单VPS主机上运行我的应用程序。数据库和Apache都在相同的VPS上运行。最近我将我的应用程序迁移到PHPFog,以便更容易扩展。我没有这个问题 我以前的托管设置。
具有user_data的填充值的行是我的原始会话。其他三个空白会话是简单刷新页面三次的结果。我似乎已经跟踪它在我的标题中包含一个css文件,当我发表评论或删除它时问题就消失了。它只是这个特殊的css文件,其他css / js / image文件不会导致这个问题。
以下是相关css文件的链接: http://pastebin.com/XfEBNFiC
任何人都知道是什么原因引起的?谢谢!
更新 我意识到有问题的页面的HTML可能会有所帮助。评论第13行的样式表会使问题消失。 http://pastebin.com/iBEb4he6
UPDATE2:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
/*
|--------------------------------------------------------------------------
| Cookie Related Variables
|--------------------------------------------------------------------------
|
| 'cookie_prefix' = Set a prefix if you need to avoid collisions
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
| 'cookie_path' = Typically will be a forward slash
| 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists.
|
*/
$config['cookie_domain'] = 'casey.phpfogapp.com'; //$base_url_parts['host'];
$config['cookie_path'] = '/';
$config['cookie_prefix'] = "";
$config['cookie_secure'] = FALSE;
答案 0 :(得分:3)
在我的应用程序中,我将以下代码放入.htaccess中,以防止使用css / js / images请求发送cookie:
#.htaccess
# Use Mod_deflate to compress static files
<ifmodule mod_deflate.c>
<filesmatch ".(js|css|ico|txt|htm|html|php)$">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>
# Speed up caching
FileETag MTime Size
# Expires
ExpiresActive On
ExpiresDefault "access plus 366 days"
# Future Expires Headers
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Sat, 27 Dec 2014 23:59:59 GMT"
</filesmatch>
答案 1 :(得分:0)
之前我遇到过这个问题,问题是CI Cookie名称中没有点。
错误的Cookie名称:.domain.com
光滑的罪犯:mydomaincom我使用带有点名称的域名来启用域名范围的cookie(从主域到其所有子域共享cookie),结果我发现我唯一需要的是:< / p>
$config['cookie_domain'] = ".domain.com";