CGI-BBS > SO−HO > ショッピングバスケット > 画面をリロードする度、商品がカートに追加されてしまう


カレッヂ
カレッヂ


質問者 strawberry  投稿日 6/26(木) 15:19:59
はじめて質問させて頂きます。
ショッピングカートプロV6.10を使用しているのですが、
カゴに入れるボタンを押した後、CGI画面が別窓で開きますよね。
その画面をリロードすると、リロードするたびに、始めに選んだ商品が追加されてしまいます。
ようするに、どんどんカゴに入ってしまうのです。
この症状は「カゴに入れる」ボタンを押した後のカートウィンドウの最初の画面だけで発生するようなんです。
カートに入れて発送地域を選択し、次の画面に進んだ後は、リロードしても問題ないですし、
記入漏れなどのエラーでカートに戻っても発生しません。
以前同じような症状をBBSを設置した際、発生したことがあるんですが、
これはCGIに特徴的な症状なんでしょうか?
どなたか回避策をご存知の方がいらっしゃいましたら、
ご回答よろしくお願い致します。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Mac9
エディタ:GoLive
FTPソフト:GoLive
サーバ移転:していない
改造:している 改造前不動
CGI習熟度:advanced

回答者 しあわせのツボ  [削除]  投稿日 6/26(木) 17:30:21
CGIから返されたページはリロードするべきでありません。
再読込ボタンを押すと、ブラウザはフォームの内容も含めたリクエストを
サーバに再送信します(それによってCGIが返すべき内容も異なるためです)。
それが「リストの5番目を表示する」なら見かけ上は期待通りの処理をされますが、
「掲示板に書き込む」なら再度書き込まれます。
逆に言うと、それが「正しいブラウザの動作」であり「正しいCGIの動作」です。

今回の場合、リロードすると「カゴに入れる」リクエストが再度サーバに行き、
サーバはそのたびにカゴに追加します。
それでは不都合だと思うなら、CGIの側でリロードを検知するようにするなり、
そもそも再読込させない仕組みを考えるなりしなければなりません。
質問者 strawberry  [削除]  投稿日 6/27(金) 02:24:21
しあわせのつぼ様
ご回答ありがとうございます。
すいません、返信が遅れまして。
やはりそうでしたか。
BBSでその症状を見つけた時は、別にお金にからむ事はないので、
そのまま気にせず無視してましたが、
今回はショッピングシステムなのでお金絡みになってしまうので、
理由を正確に知ることが出来て非常に助かりました。
とにかく回避策を練って挑戦してみます。
ありがとうございました。

返信(回答)する

 


Web裏技