1

私が取り組んでいる CakePHP 2.x サイトは、ローカルで意図したとおりに動作します。ログインは機能し、セッション フラッシュ メッセージは機能します。コードをステージング/製品サーバーにプッシュすると、コードが壊れます。

ログインが機能しなくなった、セッション フラッシュ メッセージが表示されない、/user/login にリダイレクトするはずの一部のコントローラー アクションが何も表示されない (空のドキュメント) など。

私は問題が何であるかについて途方に暮れています。私が経験している問題と私が行ったいくつかの検索に基づいて?>、コードのみの PHP ファイル (コントローラー) を閉じた後の空白などの問題を除外したと思います。DB セッションを使用していますが、ローカル インスタンスの DB にセッション レコードが作成されていますが、リモート ステージング/本番インスタンスには作成されていません。

どんな援助でも大歓迎です。ありがとう。

4

2 に答える 2

2

app/Config/core.php で、これらのことを確認してください。

  1. SSL および非 SSL ベースのプロトコルを使用している場合は、cookie_secure が false に設定されていることを確認してください。

    Configure::write('Session', array(
       'defaults' => 'php',
       'ini' => array(
           'session.cookie_secure' => false
       )
    ));
    
  2. セッションの構成をphpのデフォルトからcakeまたはdb asに変更してみてください

    Configure::write('Session', array(
        'defaults' => 'php', // change 'php' to 'cake' or 'database'
        'cookie' => 'my_app',
        'timeout' => 4320 //3 days
    ));
    
  3. また、ブラウザの問題かどうかを確認するために、 Session.checkAgentを false に設定してみてください。

  4. セッションのSession.nameを変更してみてください。デフォルトは「CAKEPHP」です

    Configure::write('Session', array(
        'name' => 'New-Session-name'
        'defaults' => 'php', // change 'php' to 'cake' or 'database'
        'cookie' => 'my_app',
        'timeout' => 4320 //3 days
    ));
    
  5. /app/tmp のすべてのサブディレクトリからすべてのキャッシュ ファイルを削除します。

  6. デバッグ レベルを 1 に設定して、キャッシュを更新します。それでもエラーが表示されない場合は、php.ini で error_reporting を true に設定してみてください。(ただし、これは非常に明白です。見逃した可能性がある場合に備えて、まだ指摘しています)

お役に立てれば

于 2013-03-08T05:12:29.197 に答える
2

私が頻繁に遭遇した推奨事項の 1 つは、コードのみのファイルで PHP の終了タグの後に空白がないことを確認すること (または、できれば実際には PHP の終了タグを持たないようにすること) でした。私のすべてのファイルをチェックすると、それが事実であることがわかりました。しかし、どういうわけか、PHP の開始タグの前に 1 つの改行を入れることができましたAppController.php。それが問題でした。これに時間を無駄にしてしまった人には申し訳ありません。これが、不器用に同じ間違いを犯した将来の誰かに役立つことを願っています.

于 2013-03-11T20:01:10.467 に答える