今天碰到一個很蛋痛的問題,有個專案PHP開發介面給客戶端內嵌的網頁做應用,測試拿了6台iPhone來測試,5台設備測試都沒問題,就1台9.1版本的iPhone6s一直不行,很奇怪,找不到原因。
然後,用fiddler抓包發現這台設備在應該產生cookie的介面請求後並沒有產生cookie,所以往後需要用到cookie的介面也走不下去了。由於是網頁內嵌在客戶端裡的,於是去設定裡查看safari是否啟用了cookie,check後發現cookie也是啟用的。
這實在是太奇怪了!還能有什麼原因?瞟了一眼設備的時間,不對啊,和當前時間不一樣,快了半小時(當時沒注意日期,應該快了至少一天,因為服務端設定的cookie過期時間為1天)。把日期調至目前正確時間後,cookie就能產生了。
後來,試驗重現了一下這個問題,當cookie設定過期時間為1天,假設目前設定cookie時間為2016年03月24日22點整(伺服器時間),而客戶端時間為2016年03月25日22點整,那麼設定cookie是不會成功的,因為剛設定cookie就立刻失效了。
以上就介紹了服務端PHP設定cookie,客戶端未生效,包含了方面的內容,希望對PHP教學有興趣的朋友有所幫助。