≒ ECサイト制作進捗

11/27のエントリで書いた目標のうち「打ち残しファイル」は昨日で終了。今日は「最近チェックした商品の記憶」を終わらせた。

目標で書いた時点ではデータベースに入れるような処理を考えてて、難しい改造をしなきゃいけないと思い込んでたのだけれども、よく考えたらセッションを長生きさせれば良いことに気付いてその方向で考える。そのほうがログインしないで、つまり非会員でも対応できると思ったのです。

で、コード読み直して、情報集めて、すぐ却下。ちょっとやってみて上手くいかなかったのもあるんだけど、ログイン認証結果も入ってるデータを長生きさせるのは良くないことに気付いた。なので取り掛かったのがクッキー。というか普通は迷わずクッキーだそうです。ちなみに、Amazonもクッキー制御みたいだけど、データベースにも格納してるらしい。仕組みを知りたいな。

以上を前提に今日の失敗。
まず、sessionで試行錯誤した関係で、変なセッションデータが残っちゃってまともにログイン出来なくなった。恥ずかしいので結論から先に言うと、ブラウザのキャッシュ消して解決したんだけど、頭がコードから離れなくて、コード記述で直さないとと思い試行錯誤。session_destroyしようにもsession_startでエラー吐いて止まっちゃう。調べると「@session_start」でうまく行くとのこと。
その通りすると、やった!エラー出ない。ちゃんとページ描画される。でdestroy行を消して処理を入れてみると元通り駄目。むーん。
この時点でsession永続化の危険に気付き計画放棄。クッキー化へ方針変更。sessionの部分を全部クッキーに書きなおす。クッキーについて調べてるうちに「@」についての説明発見。

「命令の前に@を付けるとエラー情報を書きださなくなります。」

この野郎!状況をごまかしただけだったのか!

で、引き続きクッキー化の改造。参考サイト(そふぃさんいつもありがとう)見ながら今度はきっちり書きあげる。走らせる。駄目。

setcookie(“hoge[‘huga’],チェックした商品番号,UNIXタイムスタンプ+クッキーの寿命)

って書いてる。30分位調べて判る。

[huga](クオートなし)が正解。

PHPを入門書で勉強してた時に見てたのになー。ヒアドキュメント内やいくつかの条件がある場合、連想配列の添え字はクオート付けちゃだめだって。今度こそ覚えとこう。

以上、今日の失敗2つでした。先週末の目標3つのうち残りは「注文履歴まわりの改造」だけ。今晩から取り掛かる。
しかし、また穴を発見。「著者詳細」と「出版社詳細」のページがリンク切れ。探してもサンプルコード見つからず。最初からなかったみたい。「自分で創れ」ってことですね。

一番の難関「全体のUI周り改善」にいつ取り掛かれるのか判らなくなってきた。しかしこの本はほんとに勉強になるなー。