2012-04-26 70 views
5

我使用笨2.1在我最新的網站之一,在通過3G接入,餅乾正在成爲腐敗...餅乾腐敗移動網絡上

在做一些調試的地步,該cookie將被最初讀我可以看到,它顯然被截斷,下面有一個例子:

a:14:{ 

應該

a:14:{s:10:"session_id";s:32:"ef171f95db26ad51986....... 

這僅當讀取連接到移動網絡的設備上的cookie發生,我只能夠測試3次,以遠遠出乎我的意料,一個工作:

  • 華碩筆記本電腦瓦特/沃達豐適配器(X)
  • Macbook Air的W /沃達豐適配器(X)
  • iPhone 3 Orange英國網絡(X)
  • 三星Galaxy SII在三(工程)

其網絡基礎和頭部被沿途某處損壞的我猜的。 (可能是一個代理?)

這已經讓我整個星期,所以任何信息將是真棒。

編輯:請注意,該網站有不少餅乾,但大小不大。我們有Google Analytics,Sharethis,Uservoice和Facebook。

+0

你知道請求完全服務嗎?該網站將被加載或剛剛取消?在這些系統上使用了什麼瀏覽器? – 2012-05-10 16:17:59

+0

很難說,它從不同的設備/網絡改變..在華碩筆記本瓦特/沃達豐加密狗,頁面不提供,但無法告訴你頭標狀態代碼,因爲我沒有訪問它atm,將用更多的信息更新我的問題..謝謝! – Eddie 2012-05-10 16:21:47

+1

您是否嘗試過聯繫移動運營商以聽取他們的意見? – 2012-05-10 20:42:57

回答

4

雖然我不知道可能是什麼原因導致這種情況,但我有幾個想法可以幫助您找到應該幫助您解決該問題的問題。 我首先要做的就是儘量讓錯誤一致,只用上面例子中的一個提供者。

  • 是餅乾總是等於a:14:{
  • 您可以創建一個2線PHP頁面只命名相同餅乾餅乾,print_r的第1行中的cookie,並設置第2行的Cookie和然後更改cookie的值,以查看頁面上沒有其他變量時可以進行的更改。 (你可以設置cookie爲a:14:{}a:1a:14:xxx:{xxxx}?我們正在尋找一種可能始終如一地切割字符串的模式
  • 如果2行頁面沒有切割代碼的問題,頁面上出現實際問題,並開始刪除頁面上的所有內容,直到您只有兩行(設置cookie的行和打印該行的行)問題出現在代碼中的某處
  • if 2線頁面有問題,那麼也許它確實是移動網絡(根據我的經驗,我沒有看到這一點,但是他們可能有某種PROXY正在清理cookie)。我會開始嘗試發送不同的代碼通過cookie直到你找到一些沒有問題的東西提供商網絡。 (例如uuencode或base64_encode cookie中的數據)。
  • 如果事實證明,提供商阻止了一切,也許考慮下載一個程序,如fiddler,它允許您在非常低的層次上分析來回發送的頭文件。

希望這些故障排除步驟有所幫助。

+0

邁向IMO,+1的正確方向。 – 2012-05-11 04:30:58

+0

我目前沒有時間做這些測試,但他們都似乎合乎邏輯,我相信我會在路上發現問題,謝謝邁克爾。 – Eddie 2012-05-15 15:24:22

0

你有

$config['sess_match_ip']  = TRUE; 

如果是這樣 - 這不會在手機設備上工作,因爲許多電信公司循環IP地址每一秒都在手機上(沒有 - 我不知道爲什麼) - 因此,它殺死您的會話

或者 - 你試圖切換

$config['sess_encrypt_cookie'] = true; 

改變,這也可能會解決你的問題

+1

不過,不會解釋有損壞的序列化數據。 – 2012-05-11 04:29:45

+0

是的 - 如果用戶點擊他的網站時,他的網站認爲它是壞的(因爲IP已經改變) - 那麼結果可能是刪除cookie - 留下a:14標識符。正如我所說 - 因爲它只出現在手機上,而手機循環使用IP地址,所以這是要定義檢查 – Laurence 2012-05-12 14:22:48

+0

否,'a:14:{'是無效的序列化數據(嘗試調用'unserialize()'在上面)。 – 2012-05-12 14:41:16

0

嘗試設置一些沒有ci的會話類的測試cookie,看看它是否也會損壞。如果不是那麼這是一個ci錯誤。我有一個類似的問題,Codeigniter無法序列化使用'\'轉義的數據。還要確保在保存後記錄cookie的大小。也許它超過了4096.