Materializing [マテリアライジング]

About Home

Cookieコンポーネント使って、クッキー利用でぶつかってる問題点

arata (2011年2月 3日 13:02)

ぶつかった問題。
CakePHPのクッキー・コンポーネントを利用しているんだけど、2次元配列で値を収めた直後は大丈夫なんだけど、次にアクセスした時(別のビュー)に移った時に読み込めない点。

先ずは、そもそも追加の仕方に問題があるんだ!と思って自分を疑う。
配列に配列を追加するのは array_push() 。
このやり方から間違ってるんじゃないかな?とか。。。
こんな風なのをビュー側に書いてみて調査。

$hoge = array();
$ha = array(
	'a' => 1,
	'b' => 2
);
$hb = array(
	'a' => 3,
	'b' => 4
);
array_push($hoge, $ha, $hb);
debug($hoge);

。。。一応動いてるっぽい。
これと同じ事をコントローラ側でやりたいんだけど。。。出来ない(泣

やってみたこと

CakePHPにはグローバル関数というものがあるので、そっちを利用すると良いのかな?
と思い、配列の作り方を変えてみる。

$hoge = array();
$ha = aa(
	'a', 1,
	'b', 2,
);
$hb = aa(
	'a', 3,
	'b', 4,
);
array_push($hoge, $ha, $hb);
debug($hoge);

aa() というのが、キー, 値 で連想配列を作ってくれる関数。
全部カンマで区切って、奇数値がキー。偶数値が値。
こんなんやってみたけどダメ。

次に、じゃーモデル経由させてみよー丶(・ω・)ノって思って、モデル側に関数を用意。

function arrayCombine($arrA, $arrB) {
	array_push($arrA, $arrB);
	return $arrA;
}

これ経由でもダメ。

そもそもダメな点

他にもちょびっと考えられる事を試してみたけど全部ダメ。

そんなこんなやって気付いたのは、そもそも保存は出来ても読出しがダメなんだよね!という点。<ズコー

保存動作してみて、直後のビューでは反映されるけど、他のビューに切り替わるとCookieから読み込んだ値が全部空になってマス。
この動作はいったい何なのでしょう。。。

Array (
	[a] => Array
	[b] => Array
)

というワケで、最終的には・・・クッキー利用取り止めてセッションに切替!
おしまい!(泣

あとがき

神は言っている。ここでクッキーに負ける定めではないと・・・!!
。。。すいません負けました。完膚なきまでに叩きのめされました。

でも、クッキー利用もセッション利用も勉強したかったので、良い機会だったんだきっと!と割り切ってます。
セッションもクッキーも、やってみると面白いなぁ。。。

Materializing [マテリアライジング]

Materializing [マテリアライジング]

About Back

トラックバック(0)

トラックバックURL: http://www.materializing.net/weblog/mt-tb-270808.cgi/485

Materializing [マテリアライジング]

About This Site

基本的には自分のためのNoteって感じでゆるく運営中。
紹介している情報(サイトやWeb制作、CMS解説など)は、どちらかというと初心者向けです。
このサイト自体をWebに関する実験場として、Webの楽しいところや難しいところなど、伝え遺して行けたらなーと思ってます。


Name
新(arata)
Hobby
Driving,PC,Listening Music
Handling
Webサイト(CMS),Programming(PHP,Java),Webグラフィック
Profile Page URL
http://iddy.jp/profile/materializing/
Twitter
Twitter/arata
Other Info
My Profile by iddy

Create with jQuery, jQTouch.


CLOSE