*

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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

【どうしてこうなった!?】このブログの直帰率が1%を切りました【自分史上初】

以前のエントリーで、このブログの直帰率が80%から20%に激減したことを報告しました。

記事を読む

composerでcakephpをインストールしてプロジェクトを始めてみる

こんにちは!今日も寒いです。 この時期になると気になってくるのが花粉症です。 自分は花粉

記事を読む

【wordpress】buddypressでの子テーマの作リ方

先日BuddyPressのインストール方法をお伝えしましたが、インストールしたままテーマを変

記事を読む

SVNリポジトリのリプレース(とeclipseの設定)

  SVNリポジトリのリプレースを行ったのでエントリー。 1.リポジトリをdump svn

記事を読む

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

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

記事を読む

xamppでSSLの設定をする

以前、xamppでvirtual host の設定をしましたが、xamppを使ってて「あれ、SS

記事を読む

no image

タグクラウド機能を付加。

右側のナビにタグクラウドを付けた。どうでしょうか。それにしてもワードプレスってタグが簡単だよね。wp

記事を読む

no image

WEBディレクター募集します

仕事でWEBディレクターが必要になりました。HTML/CSSコーディング、ディレクション経験あります

記事を読む

lolipop(ロリポップ)でTinyTinyRSSを導入 その2

前回、ロリポップでTiny Tiny RSSを導入しましたが、今回は導入したシステムに、Go

記事を読む

no image

WEBディレクター、WEBエンジニア募集してます。

いっしょにWEB制作やりましょう! クライアント駐在(派遣) 場所:都営大江戸線

記事を読む

Google AD

Google AD

PAGE TOP ↑