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サイトの表示速度をスピードアップする方法
関連記事
-
-
PHP:GDでテキストの画像合成アプリ作った
前回のNO MUSIC, NO LIFE.メーカーに続き、テキストを入力して画像化するアプリ
-
-
【どうしてこうなった!?】このブログの直帰率が1%を切りました【自分史上初】
以前のエントリーで、このブログの直帰率が80%から20%に激減したことを報告しました。
-
-
ワードプレスのプラグイン初作成
タイトルのとおり。ワードプレスのプラグインを作ってみました。仕事でEC-CUBE使って販売をしている
-
-
オブジェクトとクラスについて
基本的なところをちょっと復習。 下記あたりが参考になったのでメモ。 http://www.k
-
-
lolipop(ロリポップ)でTinyTinyRSSを導入 その2
前回、ロリポップでTiny Tiny RSSを導入しましたが、今回は導入したシステムに、Go
-
-
WEBディレクター募集します
仕事でWEBディレクターが必要になりました。HTML/CSSコーディング、ディレクション経験あります
-
-
WordPressのテーマを「stinger」に変えたよ
しばらくぶりにブログ(Wordpress)のテーマを変更しました。 以前はオールホワイトで
-
-
windows7のxamppでvirtual hostを設定する
忘れないように忘れてもいいようにエントリー。 タイトルの通りです。 c:/xampp/a
-
-
facebook for PHP SDKを使ってCakePHPでログアウトとポストする方法
ソチオリンピックではスノーボード・ハーフパイプで平野さん・平岡さんが初のメダル獲得をしました
-
-
moodleをインストールしてみた
Eラーニングの話題が上がったので、調査のためMoodleをインストールしてみました。 1.


RSS