ホームページ  >  記事  >  バックエンド開発  >  サーバー側の PHP は Cookie を設定しますが、クライアントは有効になりません

サーバー側の PHP は Cookie を設定しますが、クライアントは有効になりません

WBOY
WBOYオリジナル
2016-07-29 08:56:581277ブラウズ

今日、非常に厄介な問題に遭遇しました。クライアントに埋め込まれた Web ページ用の PHP インターフェイスを開発するプロジェクトがあります。テストには 6 台の iPhone が必要でしたが、バージョン 9.1 は 1 台だけでした。 . iPhone6sの調子が悪く、原因が分かりません。

その後、fiddler を使用してパケットをキャプチャしたところ、このデバイスは Cookie を生成する必要があるインターフェイス要求の後に Cookie を生成しなかったため、今後 Cookie を使用する必要があるインターフェイスは使用できないことがわかりました。 Web ページがクライアントに埋め込まれているため、Safari で Cookie が有効になっているかどうかを確認したところ、Cookie も有効になっていることがわかりました。

これはとても奇妙です!他にどのような理由が考えられますか?端末の時刻を見ると、現在時刻と違っていました(日付を気にしていなかったので、少なくとも1日は進んでいるはずです)。サーバーによって設定された Cookie の有効期限が 1 日であるため)。日付を現在の正しい時刻に調整した後、Cookie を生成できます。

その後、現在の Cookie 設定時刻が 2016 年 3 月 24 日 22:00 (サーバー時間)、クライアント時刻が 2016 年 3 月であると仮定して、Cookie 設定の有効期限が 1 日の場合にこの問題を再現しました。 25 日 22:00 では、Cookie は設定するとすぐに期限切れになるため、Cookie の設定は成功しません。

上記では、サーバー側で PHP に Cookie を設定する方法を紹介しましたが、これはクライアント側では有効になりません。また、PHP チュートリアルに興味のある友人の役に立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。