Повторяющийся сеанс Codeigniter - PullRequest
8 голосов
/ 19 июля 2011

У меня есть приложение, созданное с помощью codeigniter, использующее класс сеансов и хранящее данные сеансов в базе данных. Проблема в том, что я получаю дополнительные записи сеанса в своей базе данных, когда моя веб-страница загружает файл css.

До недавнего времени я запускал свое приложение на простом хосте VPS, предоставленном rackspace. База данных и Apache работали на одном и том же VPS. Однако недавно я перенес свое приложение в PHPFog , чтобы его было легче масштабировать. У меня не было этой проблемы с мой прежний хостинг.

enter image description here

Строка с заполненным значением для user_data - мой исходный сеанс. Три других пустых сеанса являются результатом простого обновления страницы три раза. Я, кажется, отследил это до включения файла css в мой заголовок, когда я закомментировал его или удалил, проблема исчезла. Это также только этот конкретный файл css, другие файлы css / js / image не вызывают эту проблему.

Вот ссылка на рассматриваемый css-файл: http://pastebin.com/XfEBNFiC

Кто-нибудь знает, что может быть причиной этого? Спасибо!

UPDATE: Я понял, что 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;

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

В своих приложениях я помещаю следующий код в .htaccess для предотвращения отправки куки с запросами css / js / images:

#.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 голосов
/ 08 июля 2013

У меня была эта проблема раньше, и проблема заключалась в том, что имя файла cookie CI не может содержать точек.

неверное имя файла cookie: .domain.com

сглаженный преступник: mydomaincom

Я использовал доменное имя с точками в качестве имени файла cookie, чтобы разрешить использование файлов cookie для всего домена (общий доступ к файлам cookie из основного домена для всех его поддоменов). Оказалось, что единственное, что мне для этого нужно:

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