web-dev-qa-db-ja.com

Webサイトがユーザーセッションを失った場合はどこを確認しますか?

数日前に突然、自分のWebサイトで、たとえば場所のフォーム(POST)に入力し、その場所を表示するようにリダイレクトすると、ユーザーセッションが失われることに気付きました。そのページを更新すると、再び接続されます。別の形式+リダイレクトでも発生します。

これは本番サーバーでのみ発生します。ステージング(本番環境と同じ構成)で、ローカルは正常に機能しています。

本番環境での私のスタックは、Apache、memcache(sessions)、PHP、Symfony1.4、MySQLです。

私がどこを見るべきかについて何か考えはありますか? Apache、何? Memcache?

ありがとう!

編集

  • 拡張機能を有効にしていないので、suhosinではありません
  • POSTとヘッダーリダイレクトの後にのみ発生します
1
fesja

私はエラーを見つけました、そしてそれはそれとは何の関係もありません。次のコードはそれを壊していました。コメントしました。理由はまだわかりませんが、少なくともバグは出ています。 symfonyの人に聞いてみます。

// clear cache
$cacheDriver = $this->getTable()->getAttribute(Doctrine::ATTR_RESULT_CACHE);
$cacheDriver->deleteByPrefix('tour.'.$this->id);
1
fesja

私は2つのことのうちの1つを推測しています:

  1. session_start()がありません
  2. セッションCookieを使用しておらず、header('Location', ...)を実行するとリクエスト変数が失われました

PersistパネルでFirebugとそのNetオプションを使用して、すべてのリクエストにPHPSESSIDCookieまたはリクエスト変数が含まれているかどうかを確認します。そうだとすれば、Locationヘッダーのターゲットページにsession_start()がないかどうかを確認します。

0
Luis Bruno