*

CakePHP1.3でブラウザを閉じてもセッションが切れないようにする方法

cakephp

ちょっと体調を崩してしまってましたが、なんとか回復してきました。(辛かった・・・)
本当に風邪には注意しましょう。
世間ではソチオリンピックが終わって一段落したところですね。

さてサービス作ってると、やっぱりユーザーさんの意見が大きいんですね。
どう大きいかというと、●●っていう機能を付けてほしい!というと、取りあえずその機能を付けるかどうか、検討するわけです。

全く論外の機能は置いといて、これはあったら便利なんじゃないか?とか、これ(ちょっと手間かかるけど)いいじゃん?とか、それくらいのレベルの機能はだいたい実装されることが多いです。(自分の場合です)

で、今回「ブラウザ閉じたらセッション切れるんだけど、切れないようにしてほしい」っていう意見がありました。
セキュリティ的なものもあるのでデフォルトで切れるようにしていたと思いますが、ユーザの意見っていうのは変わりやすいもので、今回実装が決まりました。
(今回の対象サービスはそれほど深刻なデータを抱えていないです)

CakePHP2.xであれば、以下の部分を変えれば良さそうです。(未実装)

app/Config/bootstrap.php

Configure::write('Session', array(
    'defaults' => 'database',
    'cookie' => 'CAKEPHP',
    'timeout' => 259200,
    'ini' => Array(
        'session.cookie_lifetime' => 0, //ブラウザを閉じた時にセッションを破棄
        'session.gc_maxlifetime' => 2580000,
        'session.gc_probability' => 1,
        'session.gc_divisor' => 100
    )
));

上記の「session.cookie_lifetime」の部分ですね。
ここが「0」になってると、ブラウザを閉じた時にセッションを破棄するようになってます。

ブラウザを閉じてもセッションを続ける場合は、ここに任意の数字(秒)を入れればよさそうです。

・・・が・・・

自分が改修を入れようとしたCakePHPのバージョンが1.3系だったため、この記述が使えなさそうだったんですね。
それでまた調べたわけです。

Sessions
http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Sessions.html

どうもここを見ると、session.cookie_lifetimeを変更できそうなんですが、iniを変えるのであれば、ファイルを新しく増やすようなことをしないで、直接php.iniに書いた方がいいんじゃないかと思い、php.iniに書き足しました。

※この辺りは環境によると思いますので、適時ご判断ください。

sshでサーバにログインして、php.iniのファイルを見つけ、

session.cookie_lifetime に任意の数字を入れます。
自分の場合は丸1日セッションを残しておきたかったので、60(秒)x60(分)x24(時間)=86400 を入れました。

これでサーバを再起動すると、ブラウザを閉じてもう一度ブラウザを開くと、セッションがつながったままになってるはずです。

このsession.cookie_lifetimeはデフォルトだと「0」になっていて、ブラウザを閉じるまで有効になっているのですが、「0」の時はどこでセッションを管理してるんだ?ということを考える人もいらっしゃると思います。

それはずばり session.gc_maxlifetime で管理されています。こちらはデフォルトで1440秒(24分)になってます。
この時間が過ぎるとサーバ側のセッションファイルが削除されるのでセッションが切れます。

Google AD


Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

「おっ」思ったWEBデザイン

ちょっと調べることがあったのでメモ。■株式会社テトラシーンhttp://www.tetratone.

記事を読む

【なぜ?!】ブログの直帰率が激減しました【GoogleAnalytics】

少し前から気づいていましたが、このブログの直帰率が激減しました。 まずはこちらの図表からどうぞ。

記事を読む

no image

webアプリの行方

Google Appsの説明会に行ったとき、「Googleのサービスはweb100%を目指し

記事を読む

no image

WordPress plugin cooperate to EC-CUBE

downloadhttp://code.google.com/p/now-on-sell/it co

記事を読む

facebook logo

facebookでログイン機能を作成してみた

最近の会員サイトには、facebookでログインする、という機能がよくついてます。 この機能が

記事を読む

Google Analyticsで毎日チェックするべき4つの項目

こんにちは! まだまだ寒い日が続きますねー。皆様ご自愛ください。 さて、通常なにかし

記事を読む

cakephpでユーザ定義定数を読みだす方法

サイトを作るにあたって、定数を使いたいときがよくあります。 サイト上のある数値に変更があっ

記事を読む

no image

「おっ」と思った記事

前回に引き続き、「おっ」と思ったサイトを紹介します。今回はデザインうんぬんでなく、コンテンツの方で。

記事を読む

no image

zenphotoを入れてみる

これまでの写真データ管理にはGoogleのWEBアルバムを使ってきたが、無料で使えるのは1GBまでだ

記事を読む

【アフィリエイト】WordPressプラグイン「AmazonJS」をインストールしてみました

ずん飯尾という芸人さんがいます。 中でも「現実逃避シリーズ」がプチブレイクしていて、現実離

記事を読む

Google AD

Google AD

PAGE TOP ↑