У меня есть приложение, созданное с помощью codeigniter, с использованием класса session и хранения данных сеанса в базе данных. Проблема в том, что я получаю дополнительные записи сеанса в моей базе данных, когда моя веб-страница загружает файл css.
До недавнего времени я запускал свое приложение на простом хосте VPS, предоставляемом rackspace. База данных и Apache работали на одном и том же VPS. Недавно, однако, я перенес свое приложение в PHPFog, чтобы оно стало легче масштабироваться. У меня не было этой проблемы с моей прежней настройкой хостинга.
Строка с заполненным значением для 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;
В моих приложениях я помещаю следующий код в .htaccess для предотвращения отправки cookie с запросами 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>
Раньше у меня была эта проблема, и проблема заключалась в том, что имя файла cookie CI не может иметь точек.
bad cookie name: .domain.com
гладкий преступник: mydomaincom
Я использовал доменное имя с точками для имени файла cookie, чтобы включить куки-файлы домена (общий доступ к файлам cookie из основного домена во все его поддомены), оказывается, я обнаружил, что единственное, что мне нужно для этого:
$config['cookie_domain'] = ".domain.com";