2

この問題は私を狂気に駆り立てています。2 つの別々のプロジェクト (どちらも PEAR をライブラリとして使用しますが、完全に異なるカスタム フレームワークで作成されています) で、セッションを使用する認証に PEAR Auth を使用しています。

ログイン後、ユーザーはアイドル状態になってから 1 時間ほどでログアウトされます。正確な時間はわかりませんが、非常に短いです。

次のことを試しましたが、成功しませんでした。要点を明確にするために、すべての試みはセッションを 1 日に延長しようとしています。

<?php
// Tried built-in methods to extend the idle time, called after Auth is initialised
$auth->setIdle( 86400 );

// Tried increasing the sesion timeout (before auth is called)
ini_set( 'session.gc_maxlifetime', 86400 );

// Tried increasing the cookie timeout (where the phpsession is held, before auth is called)
session_set_cookie_params( 86400 );

// Tried all of the above
?>

他の誰かがこの問題を抱えていますか? もしそうなら、アイドル時間を延長することは可能ですか?

PEAR を使用して独自の Cookie ベースの認証クラスを作成する準備がほぼ整いましたが、実際には時間がありません。

4

1 に答える 1

2

これまでのところ、この問題は発生していませんが、まだカバーされていないように思われる 2 つの理由が考えられます。

  1. setIdle()に加えて、auth クラスのsetExpire()メソッドを確認できます。
  2. 同じサーバー上で、より短いタイムアウトで同じセッション ストレージ ディレクトリを使用して、他の PHP ベースのアプリ/スクリプトが実行されている可能性があります。session.gc_maxlifetime ドキュメントによると:

    異なるスクリプトで session.gc_maxlifetime の値が異なるが、セッション データを保存する場所が同じである場合、最小値のスクリプトがデータを消去します。この場合、このディレクティブをsession.save_path.

于 2009-09-29T20:06:55.737 に答える