0

次のように、ユーザーの言語選択をセッションに保存しています。

$this->session->set_userdata('language', $language);

そして、セッションデータに応じて言語を設定しています(そして、デフォルトの言語として英語を作成しています)。

if ( !$language = $CI->session->userdata('language') )
{
    $language = "english";
}

$CI->config->set_item('language', $language);

うまく機能しますが、ユーザーが選択した言語は約 1 秒間しか持続しません。2 時間 - その後、ユーザーは言語を再度選択する必要があります。したがって、問題は、セッション時間を期限切れまで延長するにはどうすればよいか (または、ユーザーがブラウザー データをクリーンアップした場合にのみ期限切れにする) ことです。Web サイトでゲストも処理する必要があるため、ユーザーの選択をデータベースに保存できません。

CIの構成でセッション時間を延長できることは知っていますが、アカウントセッションなどではなく、言語選択の場合にのみ延長したいだけです。

4

1 に答える 1

1

それは同じセッションであり、期限切れになるか、期限切れになりません。認証部分を期限切れにすることはできませんが、言語選択を期限切れにすることはできません。CI では、複数のセッションを簡単に管理することはできません。これにより、認証を 1 つの短期間のセッションに保存し、言語設定を長期間のセッションに保存することが可能になります。そのままでは、言語設定を Cookie に直接保存する方が簡単かもしれません。リクエストごとに Cookie を再度設定する必要があることに注意してください。そうしないと、ユーザーのアクティビティ時に Cookie が自動的に更新されず、ユーザーがサイトをアクティブに使用している場合でも有効期限が切れます。

于 2012-06-02T22:17:09.423 に答える