2016-03-31 20 views
1

OTP(ワンタイムパスワード)のセッションを$this->session->set_userdata('otp')として使用しています。このセッションの有効期限を5分(300秒)に設定したいとします。私のコードの他のすべてのセッションについては、通常のセッション時間として有効期限を設定します。これを行う方法?5分後のCodeigniterセッションの有効期限

+0

クッキーまたはコード識別子「flash_data」を使用できませんか? –

+0

私のプロジェクトにcodeigniter 2.2を使用していますので、flash_dataは使用できません。 –

+0

@SankarVいいえ、flash_dataは1つのリクエストのみを保持しているため、オプションではありません。ただし、セッションを追加した後にトークンが期限切れになっているかどうかをチェックすることができます。 Codeigniter自体にはライブラリが同梱されていません。 – Jordy

答えて

3

最初にまず最初に - あなたは条件を正しく取得する必要があります。 「セッション」はすべてのことですが、理解しているように、特定のセッション「アイテム」に対してのみTTLを設定したいと考えています。

つまり、CodeIgniter 2ではこれを行うことができません。そうしないと、2.xのバージョンツリーはサポートされなくなります。

CodeIgniterの3へのアップグレード、あなたは正確に何をしたいんれ、「tempdata」機能を使用することができます:ちなみに

// This will make $_SESSION['otp'] available only for the next 5 minutes 
$this->session->set_tempdata('otp', $your_value, 300); 

、5分はあなたがいることをスキップした場合でも、デフォルトのTTLもありますパラメータ。

+0

アップグレードしようとしましたシステムフォルダを置き換えることにより、バージョン2〜3のcodeigniterをインストールします。しかし、それは私にいくつかの誤りを与えました。どのようにアップグレードする?? –

+0

アップグレード手順に従うことによって:https://codeigniter.com/userguide3/installation/upgrading.html – Narf

+0

私はそれに従ったが、まだいくつかのエラーがあります。私はいつかそれをアップグレードするつもりです。私に別のオプションを教えてもらえますか?私はコードを書こうと急いでいる。私はそれを動作させる必要があります –

関連する問題