unserializeしてもエラーになったり読み込めない時はstripslashesを考慮

どうも。ご無沙汰です。。。いつもご無沙汰ですね。
さてさて、一応生きて元気に活動してます。
もろもろの事情により、勉強会とかなんらかの会合は行くことが出来ないでいますけど。
そんなもんだから勉強してます。PHPとか英語とか。もちろんJavaも。

勉強会と言えば、直前のお知らせになっちゃうんですけど、九州は宮崎にて勉強会が行われます。明日ですね。
【日時 2010/11/12 17:00】
MWW : ATND

一部になりますけど企業紹介。。。

あー・・・ほんと行きたかったなー。
嘆いても仕方ないんで、遠くから会の成功を祈るばかりです。
というか行ける方はほんと行くと良いんです。
宮崎って遠くに感じますけど、遠いんですよ!違った。近いんですよ!

で、ようやくここから本題です。
今回はPHP使ってて、Cookieをムシャムシャ食べてる最中に起きました。
serializeで保存可能な形式に変換して、unserializeで戻して取り出すところなんですが。。。
なぜか正しく戻らない。取り出せない。
はてなにかおかしいのかな?と悩んでしまいました。

結論としては、serialize → stripslashes → unserialize で解決しました。

stripslashesを利用したら正しく読み込めた。

以下みたいな感じです。

if(isset ($_COOKIE['cookie_hoge']) == TRUE) {
    var_dump($_COOKIE['cookie_hoge']);
    // うまく行かなかった時
    // $hoge = unserialize($_COOKIE['cookie_hoge']);

    $hoge = stripslashes($_COOKIE['cookie_hoge']);
    $data = unserialize($hoge);

    var_dump($hoge);
}

Cookie値を読み込むとエスケープ処理されているのかな?と。
なので、アンエスケープ処理を行う stripslashes してみたら、ちゃんと普通状態に変換されました。

あとがき

まだまだ知識がアレなんで、こうやって小さなこと(自分にとっては大きかったですけど)が解決出来るだけでとても嬉しいです(^ω^)

Cookieを利用した「お気に入りリスト」みたいの作るのが当面の目標です。

追記:2011/02/09 05:43:09

-> 目標達成です。こちらのWebアプリで利用してみました。
ATND API+CakePHPでイベント検索。「気になるATND検索」

▲ to Top

▲ to Top