2011-07-19 24 views
8

セッションクラスを使用し、セッションデータをデータベースに格納するcodeigniterを使用してアプリケーションを構築しました。問題は、私のウェブページがCSSファイルを読み込んだときにデータベースに余分なセッションレコードを取得してしまうことです。Codeigniterセッションの重複問題

最近まで、私はラックスペースで提供されているシンプルなVPSホストでアプリケーションを実行していました。データベースとApacheはどちらも同じVPS上で動作していました。最近では私のアプリケーションをPHPFogに移行して、より簡単に拡張できるようにしました。私は 私の以前のホスティング設定でこの問題はなかった。

enter image description here

USER_DATAための人口値を持つ行が私の最初のセッションです。残りの3つのブランクセッションは、単にページを3回リフレッシュした結果です。私はヘッダーにCSSファイルを含めて追跡したようですが、コメントアウトしたり削除したりすると、問題はなくなります。この特定のCSSファイルだけですが、他のCSS/js/imageファイルでもこの​​問題は発生しません。ここで

は、問題のCSSファイルへのリンクです: http://pastebin.com/XfEBNFiC

誰もがこれを引き起こしている可能性があります知っていますか?ありがとう!

更新: 問題のページのhtmlが役立つ可能性があります。 13行目のスタイルシートをコメントアウトすると、問題はなくなります。 http://pastebin.com/iBEb4he6

アップデート2:私は、CSS/JS /画像のリクエストで送信するクッキーを防止するための.htaccessに次のコードを配置します私のアプリケーションでは

$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

これはなぜ問題なのですか? – jondavidjohn

+0

すべてのページ要求に対して、セッションテーブルにレコードが作成されていますか?テーブルは急速に成長し、実際にはユーザーセッションと相関しない無駄なセッションレコードでいっぱいになります。ああ、おそらく、実際のユーザーセッションが失われているようには見えないはずです。セッションのプロパティ/変数は、リクエストからリクエストまで維持されます。これらの新しいレコードは、どこにも現れません。 –

+0

スタイルシートを含むhtmlへのリンクを含むように質問を更新しました –

答えて

3

#.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> 
+0

良いヒント!ありがとうザック! –

0

私は以前にこの問題を抱えていました。問題は、CIクッキー名にドットを入れることができないということでした。

悪いクッキー名:.domain.com

スムーズな犯罪者:mydomaincom

私はクッキー名は、すべてのメインのドメインからドメイン全体のクッキー(株クッキーを有効にするためにドットでドメイン名を使用していましたそのサブドメイン)は、私が必要としたのは、それが必要な唯一のものであることがわかりました。

$config['cookie_domain'] = ".domain.com";