人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ショッピングカートなのですが、
例えば、「住所入力(cart01.php)」を入力してもらった後、
「支払方法選択(cart02.php)」に移動してもらうようなものを、PHPで書きました。

ざっくりした流れですが、
cart01.phpで入力してもらった内容をcart01.phpにPOSTして、バリデートやらサニタイズやら。
エラーがあれば、もう一度cart01.phpを表示し、再入力してもらう。
エラーがなければ、内容をクッキーに保存して、Location headerでcart02.phpに移動させる。
cart01.phpを介さずcart02.phpにアクセスした場合は、これもLocation headerでcart01.phpに戻す。
といったようにしています。

いろんな意味で、何かまずいところはありますでしょうか?
特に、Location headerで移動させている部分が気になっています。
PHPでもっとスマートに複数の入力画面をもつカートを実装する方法を教えてください。

●質問者: DOGEAR
●カテゴリ:ウェブ制作
✍キーワード:PHP アクセス エラー カート クッキー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●40ポイント

クッキーの内容を解析して偽造、そしてcart01.phpからのアクセスだと偽装してcart02.phpにアクセスといったプロセスを使ったDoS攻撃とか・・・。

phpならばセッションの利用が一番手っ取り早くて比較的安全ですね。

ITmedia エンタープライズ:特集:第2回 ショッピングカートの作成で分かる「PHP」の力 (1/5)

PHP Dream : セッションを利用した入力フォーム

簡単なショッピングカート - Do You PHP?

以上、コードの比較的短いサンプル的なページを探してみました。

他にも多数ありますので

googleなどで「php セッション ショッピングカート」で探してみてください。

◎質問者からの返答

ご回答ありがとうございます。

すみません。

クッキーとセッションがごっちゃになっていました。

内容を格納しているのはセッション($_SESSION[])でした。

でも、参考になるサイトをありがとうございます。


2 ● hatebu_music
●30ポイント

特に問題はないと思う。

Location headerでcart01.phpに戻った時に入力した内容がクリアされないようにしたほうがいい。


cart01.phpで住所入力と支払方法選択を一気に入力してもらうようにしたら、どうでしょうか?

入力するごとに画面遷移してると、途中でめんどくさくなって離脱する人もでてくると思います。

決定(送信)ボタンクリック後に、エラーを指摘されて前の画面(cart01.php)に戻ると案外ムカつくので、入力した内容をajaxとかでチェックしてくれるとありがたいかな。

◎質問者からの返答

ご回答ありがとうございます。

元は、一気に入力させるフォームだったのですが、とあるショップのカートを見ていて、

例えば、おくりもの用なのか自宅用なのかで振り分けられたりして、

かっこいいと思ってしまい、今回の変更をしていたところでした。

なるほど離脱率やのことも考えて作らないといけませんね…参考になります。

ちなみに、

cart01.phpに戻った時に入力した内容はクリアされなくしてあります。

JavaScriptでフォームの値をバリデートして、リアルタイムでエラーではなくWarning?的な表示をするようにしていますが、なんだか恐いので、もう一度PHPでバリデート・サニタイズする仕様にしています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ