*

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アプリの行方

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

記事を読む

no image

windows7のxamppでvirtual hostを設定する

忘れないように忘れてもいいようにエントリー。 タイトルの通りです。 c:/xampp/a

記事を読む

no image

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

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

記事を読む

facebook for PHP SDKを使ってCakePHPでログアウトとポストする方法

ソチオリンピックではスノーボード・ハーフパイプで平野さん・平岡さんが初のメダル獲得をしました

記事を読む

no image

ec-cubeで欲しい機能

仕事で、ec-cubeを触っている。どこの企業でも同じだと思うが、ec-cubeを使っているとカスタ

記事を読む

no image

facebookのビジョンはセマンティックか – ライフログとopen graph

facebookが開発者カンファレンス(f8)でアップデートを発表した。 「また何か機能付

記事を読む

no image

Pear::pager と TwitterBootstrap をマッシュアップしてみた

前回に引き続き、WEBアプリをカスタマイズしてみました。 DB使って商品登録をしてると

記事を読む

あらら?Googleのストレージサービスで、無料なのに有料プランが使えてる?!

  「ストレージサービス」をご存知でしょうか。「サーバーのディスクスペースを

記事を読む

no image

アマゾンのクラウド(AWS)を使ってみる

前々からやろうやろうと思っていて手を着けられていなかったサービス、アマゾンウェブサービス(AWS

記事を読む

no image

zenphotoを入れてみる

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

記事を読む

Google AD

Google AD

PAGE TOP ↑