CakePHP1.3でブラウザを閉じてもセッションが切れないようにする方法
ちょっと体調を崩してしまってましたが、なんとか回復してきました。(辛かった・・・)
本当に風邪には注意しましょう。
世間ではソチオリンピックが終わって一段落したところですね。
さてサービス作ってると、やっぱりユーザーさんの意見が大きいんですね。
どう大きいかというと、●●っていう機能を付けてほしい!というと、取りあえずその機能を付けるかどうか、検討するわけです。
全く論外の機能は置いといて、これはあったら便利なんじゃないか?とか、これ(ちょっと手間かかるけど)いいじゃん?とか、それくらいのレベルの機能はだいたい実装されることが多いです。(自分の場合です)
で、今回「ブラウザ閉じたらセッション切れるんだけど、切れないようにしてほしい」っていう意見がありました。
セキュリティ的なものもあるのでデフォルトで切れるようにしていたと思いますが、ユーザの意見っていうのは変わりやすいもので、今回実装が決まりました。
(今回の対象サービスはそれほど深刻なデータを抱えていないです)
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
- 前の記事
- 【注意】インフルエンザに気を付けましょう
- 次の記事
- WEBサイトの表示速度をスピードアップする方法
関連記事
-
-
wordpressのiphone用プラグイン
Wptouchていうプラグインがあったのでいれてみた。感想は、「ん~、まあこんなものか」です。フリー
-
-
「おっ」と思った記事
前回に引き続き、「おっ」と思ったサイトを紹介します。今回はデザインうんぬんでなく、コンテンツの方で。
-
-
WordPress plugin cooperate to EC-CUBE
downloadhttp://code.google.com/p/now-on-sell/it co
-
-
開発の現場に行って来た
ひょんな事から、他社の開発の現場に行く事に。 念願だったT社に!書類選考で落ちたよT社! 久
-
-
Google Analyticsで毎日チェックするべき4つの項目
こんにちは! まだまだ寒い日が続きますねー。皆様ご自愛ください。 さて、通常なにかし
-
-
postgresqlのvacuumでビビった件
ある日突然、サービスが落ちていると連絡を受けました。 URLにアクセスしてみると、確かにサ
-
-
AmazonEC2にcakephp2入れたときにエラーが出た件
たぶんEC2にはcakephpをこれからも入れるだろうから自分用にエントリー。 Amazon
-
-
【どうしてこうなった!?】このブログの直帰率が1%を切りました【自分史上初】
以前のエントリーで、このブログの直帰率が80%から20%に激減したことを報告しました。
-
-
SVNリポジトリでコミットできなかった件
ベンダーさんに、先日立てたSVNリポジトリにコミットできないと連絡いただき、調べたところ、権限が
-
-
アマゾンのクラウド(AWS)を使ってみる
前々からやろうやろうと思っていて手を着けられていなかったサービス、アマゾンウェブサービス(AWS