8

Webmin、Apache Centos 6、Laravel アプリケーション、および古いデータベース スキーマを備えた新しい VPS サーバー。古い共有ホストではすべて正常に動作しますが、VPS では何らかの理由で Laravel のセッション ストレージ (Laravel 3.0) が Safari または Internet Explorer で動作しなくなりました。

セッション ID がクライアントに保存されていないようです。LaravelセッションIDを強制的にクライアントブラウザに保存する良い方法はありますか?

Chrome/Firefox が完全に正常に動作しているように見える場合、Safari/IE がこの問題を引き起こしている可能性のある Cookie を保存する方法の違いは何ですか?

4

4 に答える 4

16

サーバーの時間/タイムゾーンが正しくない場合、Cookie はひねりを加えて取得できます。サーバーのタイムゾーン/時間設定を確認してください。

PHPのタイムゾーンだけでなく、OSの実際の時間/タイムゾーンを確認する必要があることに注意してください。ただし、PHP のタイムゾーン ( date_default_timezone_set()) を現地時間に設定し、PHP に日付を尋ねることで、PHP の使用を確認できます。一致しない場合は、サーバーが正しく設定されていません。PHP でタイムゾーンを調整して正しく見えるようにしても、Cookie の問題は解決されないことに注意してください。OS で「日付」を使用して、OS の時刻/タイムゾーンを正しく設定する必要があります。

これが問題かどうかを確認する別の方法: Cookie を 1 年で期限切れになるように設定します。タイムゾーンが間違っている場合、これらは表示されますが (>タイムゾーンの違い)、2 時間の Cookie は表示されない場合があります (

理由: Cookie が実際の時刻を使用して設定されているため (つまり、「この Cookie は 2013 年 7 月 25 日 15:13 GMT に期限切れになります」)。ローカル コンピューターがサーバーとは異なる設定になっている場合、Cookie が送信される前に有効期限が切れているように見えることがあります。一部のブラウザはこれを修正します (以前は FF でしたが、現在は Chrome も修正されている可能性があります)。

ここで変わったのはサーバーなので、サーバーの時刻を確認してください。(また、適切な測定のために自分のコンピューターを再確認してください)。

于 2013-07-24T06:09:12.743 に答える