[Codeigniter-users] モバイルサイトのセッションについて

Back to archive index

Kenichi Ando neo.k****@gmail*****
2008年 1月 11日 (金) 17:58:26 JST


bossamaです。

早速ですが、アクセスカウンターのようなサンプルプログラムを
作って携帯でのセッションの指針を図りたいと考えます。

CIで普通に作ると、次のようになりますかね。

controllers/session.php
<?php
class Session extends Controller {

	function Session()
	{
		parent::Controller();
		$this->load->library('session');
		$this->load->helper('url');
	}
	
	function index()
	{
		if (!$this->session->userdata('conut'))
		{
			$this->session->set_userdata('conut', 1);
		}
		else
		{
			$count = $this->session->userdata('conut');
			$count++;
			$this->session->set_userdata('conut', $count);
		}
			echo 'セッションID:' . $this->session->userdata('session_id') . '<br>';
			echo '訪問回数:' . $this->session->userdata('conut') . '<br>';
			echo anchor('session', '再読み込み');
	}
}
?>

パソコンのブラウザでは正常にカウンターが追加されていきます。

しかし携帯では一切動きません。セッションIDも毎回新しく
なります。当然ですよね。クッキーに保存できないからです。

携帯でお試しください。
http://codeigniter.jp/mobile/session

そこで昔からある方法を載せていきます。

<?php
session_start();

if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
}
$_SESSION['count']++;

echo 'セッションID:' . session_id() . '<br>';
echo '訪問回数:' . $_SESSION['count'] . '<br>';
echo '<a href="session.php?' . session_name() . '=' .
strip_tags(session_id()) . '">再読み込み</a>';
?>

これだと、PC、モバイル両方で完璧に動きます。
http://codeigniter.jp/session.php

たぶん、携帯サイトが発展した、日本CIユーザ会の独自テーマにできるのでは
ないかなぁ、なんて思っています。

方法はいくらかありますが、シンプルに行きたいなと思います。

//bossatama

08/01/10 に Kenichi Ando<neo.k****@gmail*****> さんは書きました:
> bossatamaです。
>
> TIPSなどが滞っているのと、自分自身がそろそろ業務でCIを使い始めたいなぁ
> という思いもあり、問題を投げかけてみます。
>
> 会員制のモバイルサイトをCIでどう構築したら良いのか?
> という重い問題を提起します(笑)
>
> PHPセッション通常ですと、
>
> Mypage.php?sessid=セッションID
> みたいなセッションIDの尾びれ引っ張り回します。
> このやり方が、モバイルサイトの常套手段ではないのかなぁと
> 思います。
> <a>タグのリンクも同様に?を付けてセッションIDを付加させて
> おきます。
>
> CakePHPでは、
>
> <a herf="/m/mobile/auth?<?php eho h(CAKE_SESSION_COOKIE); ?>=
> <?php echo h(session_id(); ?>"リンク名</a>
>
> みたにできるみたいです。
>
> ところが、CIでは、?のようなURIは標準では使えません。
> (クエリ文字ベースアプローチ)
> 標準のURIルーティング定義としても難しいのではないでしょうか。
>
> さて、どのように解決していきましょうかね。
>
> 参考Wiki
> http://codeigniter.com/wiki/PHPSession/
>
>
> //bossatama
>




Codeigniter-users メーリングリストの案内
Back to archive index