1

私は php ナレッジベースの cms を継承しました。セッションを延長して、ユーザーが長期間 (たとえば 5 日間) 再度ログインする必要がないようにするようにという要求がありました。ログイン関数で、次のコードを追加することで Cookie の最大/有効期間の値を拡張できることがわかりました。

setcookie(session_name(),$_COOKIE[session_name()],time()+3600*24*5);

開発者ツールで Cookie を確認したところ、有効期間が延長されましたが、ユーザーは数分間操作を行わなかった後もログインにリダイレクトされています。また、Chromephp 拡張機能を使用して、ログイン ページの更新時にセッション オブジェクトをコンソール ログに書き込むと、セッション変数が空であることがわかります。

Ubuntuランプサーバーで実行しています。php.iniでいくつかのオプションをチェックしましたが、セッションの寿命を延ばすオプションが見つからないようです。また、最大 50 人のユーザーがこの kb を利用している可能性がある場合に、セッションを拡張することによって、サーバーのメモリとパフォーマンスに関してどのようなリスクが発生するかという別の問題もあります。いつものように、どんなアドバイスも大歓迎です。

4

1 に答える 1

1

セッション名と同じ名前の Cookie を設定しようとしているのはなぜですか? それはまったく役に立たないでしょう。典型的なクッキー名はPHPSESSID.

そうは言っても、Cookie の有効期限を延長するだけでは、セッション データがサーバー上に存在する時間が実際に延長されるわけではありません。

PHP.ini 設定で、実際にセッションの有効期間とセッション Cookie の有効期間を設定する必要があります。これを行う方法について説明している StackOverflow の質問へのこのリンクを参照してください。

PHP セッションを 30 分後に期限切れにするにはどうすればよいですか?

于 2013-03-28T18:21:15.960 に答える