2017-04-17 11 views
0

私はケーキのPHPで起こる非常に奇妙な動作があります。Cakephpがエラーを返す302

実際には、ユーザーがログオンすると、エラー302が返されます。

「私は、開発環境でこれを再現することはできませんが、ランダムに、セッションが死ぬとアクションリターン302

今週は、サーバーのディスクに問題が発生した、このサーバーはthirdyパートナーからである、と私はドンこの間に関係があるかどうかはわかりません。しかし、私はサーバーが最後の日に不安定であることを知っています。

私はいくつかのスタックをログに記録しようとしましたが、cakephpには何も記録されていません。

セッションメソッドはCookieを使用していますが、この問題はCookieなしで発生します。

私の仮説は以下のとおりです。

  1. ディスクは、いくつかの問題を抱えていると、セッションファイルを失います。
  2. はcakephp 2.4.5にバグがあり、セッションが失われている可能性があります。
  3. サーバー内にゴブリンが混乱しています。

お手伝いできますか?私は3週間この問題を抱えていました。

ありがとうございます

+0

実稼働環境で認証が成功したかどうか知りませんか?あなたのログインアクションはコントローラでどのように見えますか? –

+0

私はセッションからuserIdを返し、ビューにエコーしているので、認証はこれまでどおり成功しています。 これは、ログイン機能である: 「 loginUserは、ユーザー名とパスワードは、データ・ベース プライベート関数loginUser($ユーザー){ \t \t場合($ユーザー){ \t \t \tに検証された後に呼び出される// $ this-> logout(); \t \t \t IF(の$ this - > Auth->ログイン($ユーザ[ 'ユーザ'])){ \t \t \t \tの$ this - > refreshSession($ユーザー[ 'ユーザ'])。 \t \t \t \t return true; \t \t \t} \t \t}他 \t \t \t $結果=の$ this - > USER->によりvalidationErrors。 \t} ' –

+0

プロテクト機能refreshSession($ user){ \t \t $ this-> Session-> write(' Auth.User '、$ user); \t \t // Carregandoポスターパラsessão \t \tます$ this-> loadModel( '発表'); \t \t $ poster = $ this-> Announce-> find( 'first'、array( '条件' =>配列( 'Announce.int_user_id' => $ user ['int_user_id']))); \t \t $ this-> Session-> write( 'Auth.Poster'、@ $ poster ['Announce']); if(@ $ this-> Cookie) $ this-> Cookie-> write( 'rbUserSession'、$ user、true、1200); \t} –

答えて

1

はい、おそらくPHPがセッションで動作する方法と関連付けることができます。 PHPはすべてのセッションをディレクトリに保存します。これはphp_session_path関数で取得できます:http://php.net/manual/en/function.session-save-path.php。このディレクトリが、あなたが言ったディスクにあるか、別の方法で関連している場合は、問題が発生します。

+0

'php_session_path()'と呼ばれる 'PHP'関数はありません。あなたは 'session_save_path()'を意味しましたか? –

0

問題はサーバーディスクでした。私たちのパートナーはシステムを他のマシンに移行しましたが、今はすべて問題ありません。

ありがとうございました

関連する問題