0

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 が何か違うことをしない限りは。

これは既知の問題ですか、それとも明らかな問題がありませんか? 回避策はありますか?

4

1 に答える 1