記事

[CakePHP]携帯サイトのセッション周りで悩んだ。

  • このエントリーをはてなブックマークに追加

携帯の多くはCookieを扱えないので、URLにセッションIDを持ち回ることになるのですが、これがまた面倒なことに、CakePHPのセッション周りのコードを追って行ってみると、そもそも日本の携帯なんか作るように考慮されておりません。

かといって、cakeそのものを改造してしまうのはどうも気が進まないので、他の方法で対処。
http://bit.ly/ah2Is2
こちらを参考に、configの中にusersession.phpってファイルを作ります。
そして、app/config/core.phpの中の

	Configure::write('Session.save', 'cake');

	Configure::write('Session.save', 'usersession');

に書き換え。

そしてapp/config内にusersession.phpを作成。
僕の場合、メインが携帯で、管理画面だけPCだったので、

<?php
if (!isset($_SESSION)) {
	if (function_exists('ini_set')) {
		//クッキーの設定
		if(defined('ADMIN')){
			ini_set('session.use_trans_sid', 0);
			ini_set('session.serialize_handler', 'php');
			ini_set('session.use_cookies', 1);
		}else{
			ini_set('session.use_trans_sid', 1);
			ini_set('session.serialize_handler', 'php');
			ini_set('session.use_cookies', 0);
			ini_set('session.use_only_cookies', 0);
			ini_set('url_rewriter.tags', 'a=href,form=action');
		}
	}
}
?>

このように書き換え。

これで携帯サイトにはURLにセッションIDをくっつけて、PCはCookieでという処理が完成しました。

  • このエントリーをはてなブックマークに追加
2010年10月
« 9月   11月 »
 123
45678910
11121314151617
18192021222324
25262728293031

フォトライブラリー

コメント

  1. lens adapter より:

    Hi, Wonderful work! Fantastic blog. Thank you for this specific material I had been seeking all Google to be able to locate it!

  2. [CakePHP]携帯サイトのセッション周りで悩んだ。 | すごい速さ I was suggested this blog by my cousin. I am not sure whether this post is written by him as nobody else know such detailed about my trouble. You’re amazing! Thanks! your article about [CakePHP]携帯サイトのセッション周りで悩んだ。 | すごい速さ Best Regards Lawrence Lisa

コメントを残す

%d人のブロガーが「いいね」をつけました。