我寫了一個使用php會話的php web應用程序。當我在Android手機上試用它時,事實證明,瀏覽器沒有保留會話cookie。 我煮下來到這個超級短的測試腳本:PHP會話cookie未保存在android上
<?php
session_start();
var_dump($_COOKIE);
?>
,因爲我可以看到它在其他瀏覽器中預期的行爲是: 在我們看到的第一個電話:
array(0) { }
在第二後續調用,我們看到:
array(1) { ["PHPSESSID"]=> string(32) "8f08c514a5c15c36309e9a435ebcc8ec" }
在Android手機,$_COOKIE
陣列但保持爲空,我也得到ŧ他首先回應(array(0) { }
)。
我檢查了設置並啓用了cookie。另外其他網站(不是我寫的)需要登錄才能正常工作。 我也嘗試清除所有cookie和緩存以防萬一,但它沒有改變任何東西。
編輯:爲了澄清,session_start()應該設置sesssion cookie,它實際上使用桌面pc上的Firefox工作。我也看了一下http header,發現
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=a270cbe1b57ba089c1eedacd8344e871; path=/
所以cookie肯定會被設置。當然,除非在服務Android瀏覽器時PHP做了不同的事情。
這是一個已知的問題還是我錯過了明顯的東西?是否有解決方法?
同樣的問題,你確定你」用你的測試腳本重新設置cookie?您似乎沒有在您發佈的短文稿中設置任何內容。 –
您必須先將數據添加到cookie,然後嘗試var_dump – xeonarno
session_start()應該自動設置會話cookie。這是使用Firefox瀏覽器觀察到的。 – kaymes