我已經構建了一個php/codeigniter應用,當我在vps上使用rackspace託管它時,它的工作完美無缺。我最近將它遷移到phpfog的託管環境,但是我遇到了用戶會話的問題。codeigniter會話在使用phpfog託管時會丟失會話狀態
我正在使用sessions類將數據存儲在數據庫中。我看到的問題是,在初始頁面請求中,會在數據庫中創建兩個會話記錄。然後爲每個頁面請求創建一個新的會話記錄。頁面間切換時,應用程序會丟失會話。
我不確定可能是什麼導致這個,也許是緩存層或phpfog的負載均衡器?有任何想法嗎?謝謝!
UPDATE:
玩這個存在了相當一段時間後,我可能已經能夠跟蹤這個bug降到@字體面包括在我的CSS文件中的一個?????? ??
/*
@font-face {
font-family: 'ColaborateLightRegular';
src: url('/application/assets/web/css/fonts/ColabLig-webfont.eot');
src: url('/application/assets/web/css/fonts/ColabLig-webfont.eot?iefix') format('eot'),
url('/application/assets/web/css/fonts/ColabLig-webfont.woff') format('woff'),
url('/application/assets/web/css/fonts/ColabLig-webfont.ttf') format('truetype'),
url('/application/assets/web/css/fonts/ColabLig-webfont.svg#webfontR2xcGGVv') format('svg');
font-weight: normal;
font-style: normal;
}
*/
當代碼塊未在樣式表中註釋掉包括在我的很多網站的網頁,一個新的會話在我的數據庫中創建。當它被註釋掉時,新的會話不會發生?我明天會再看看它,因爲現在我正在睡覺,但這很奇怪。有誰知道可能是什麼原因造成的?
你可以讀寫cookies嗎?沒有數據庫存儲會話會不會持續? –
只要讀取/寫入cookies,我可以告訴我的服務器正在發送標題:「Set-Cookie \t ci_csrf_token = 2c673e4052dbad447ed82340c4c0878d; expires =星期二,2011年7月19日00:46:03 GMT;路徑= /」並且任何對$ this-> session-> userdata('field_i_previously_set')的調用都會失敗,因爲服務器似乎每次啓動一個會話 –
我會給它一個沒有db存儲的鏡頭我只是真的希望避免去那條路線 –