![](/img/trans.png)
[英](localhost) meta http-equiv don't work on android browsers
[英]Cookies don't update on some android browsers
我開發了一個兩步驗證登錄,該登錄使用cookie來檢查設備是否已通過驗證:此cookie包含唯一的ID和隨機密碼,該密碼在每次設備訪問時都會更改。 要進行更新,我使用以下php代碼
setcookie('nameofthecookie', '', time()-600,"/");
setcookie('nameofthecookie', $newcookiecontent, time()+2629743,"/");
它在大多數瀏覽器上都可以完美運行,但在某些android瀏覽器上卻不行:事實上,使用它們,cookie不會更新。
我嘗試做的是:
僅使用創建Cookie
setcookie('cookie的名稱',$ newcookiecontent,time()+ 2629743,“ /”);
並且有效 ;
僅使用刪除Cookie
setcookie('cookie的名稱','',time()-600,“ /”);
它起作用 。
有人可以建議我解決方案嗎?
您的代碼將導致以下標頭發送到客戶端:
Set-Cookie nameofthecookie=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
nameofthecookie=somevalue; expires=Sat, 24-May-2014 22:11:13 GMT; Max-Age=2629743; path=/
基於RFC的HTTP Cookies (第9頁),如果路徑相同,則未定義瀏覽器將選擇哪個cookie:
如果多個Cookie滿足上述條件,則按以下順序排序
Cookie標頭,以便那些具有更具體Path屬性的標頭
先於那些不太具體的。 關於其他的訂購
屬性(例如,域)未指定。
因此,也許Android瀏覽器選擇具有emtpy值的cookie,而您的桌面瀏覽器選擇了后者。 Netscape Cookies規范指出:
具有相同路徑和名稱的實例將相互覆蓋,以最新實例為准。 路徑相同但名稱不同的實例將添加其他映射。
實際上,您無需在設置新值之前將Cookie重置為空白值。 只需刪除代碼的第一行即可。
有關使用PHP管理cookie的更多信息,請參見本教程 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.