1

私はそのような住所を持っていますexample.com/page1。たとえば、訪問者のユーザーエージェントは次のようになりますMozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146。実行するsession_id()と、PHPセッションIDは12345です。一時フォルダー内に「sess_12345」ファイルが表示されます。すべてのセッション変数が含まれています。

いくつかの処理の後、私は彼/彼女をにリダイレクトしexample.com/page2ます。訪問者のユーザーエージェントはこれに変更されます:Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 Twitter for iPhone。もう一度実行session_id()すると、IDがまだ12345であることがわかります。しかし、「sess_12345」ファイルを確認すると、削除されていることがわかります。

これは、ユーザーが「TwitterforiPhone」アプリケーションから私のWebサイトにアクセスした場合にのみ発生します。ユーザーエージェントの変更によりセッションファイルが削除されたと思いますが、よくわかりません。原因は何ですか?

(この場合を除いて、セッションは正常に機能します。私はCakePHP 2.4を使用しています)

4

1 に答える 1

1

Cakeには、ブラウザのユーザーエージェントをチェックする設定があります。変更すると、セッションが破棄されます。この設定をオフにします。

Session.checkAgent

于 2013-02-25T18:42:02.760 に答える