PHP セッションを使用する PHP Web アプリケーションを作成しました。Android フォンで試してみたところ、ブラウザがセッション Cookie を保持していないことがわかりました。この非常に短いテスト スクリプトに要約しました。
<?php
session_start();
var_dump($_COOKIE);
?>
別のブラウザで確認できる予想される動作は次のとおりです。最初の呼び出しで次のように表示されます。
array(0) { }
2 回目以降の呼び出しでは、次のように表示されます。
array(1) { ["PHPSESSID"]=> string(32) "8f08c514a5c15c36309e9a435ebcc8ec" }
ただし、Android フォンでは、$_COOKIE
配列は空のままで、array(0) { }
常に最初の応答 ( ) が返されます。
設定を確認し、Cookie が有効になっていることを確認しました。また、ログインが必要な他の Web サイト (私が作成したものではありません) も正常に動作しました。念のため、すべての Cookie とキャッシュをクリアしようとしましたが、何も変わりませんでした。
編集:明確にするために、session_start()はセッションCookieを設定することになっており、実際にはデスクトップPCでFirefoxを使用して動作します。httpヘッダーも調べたところ、
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 が何か違うことをしない限りは。
これは既知の問題ですか、それとも明らかな問題がありませんか? 回避策はありますか?