WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:買い物カゴでのcookie

0:[投稿] りんりん [MAIL] [2002/02/22 20:13 ][環境:MAC+IE UNIX系+Perl]

買い物カゴシステムでCGIを利用していますが、品目を選んで一度COOKIEにデータが送られた後、再度違う品目を選んでCGIにそのデータを送ると、前のデータが上書きされ、(?消え、)前に選んだ品目は無くなり新しいデータのみになってしまいます。複数のページから品目を選んだり、後から選んだ品目を追加できるようにしたいのですが良い方法はありませんか?また、反対に一度COOKIEに送られたデータはどういう仕組みで空になるのでしょうか?自分でも一応調べてみてはいるのですが、PEALにあまり詳しくないので、どなたかご存じの方がいらっしゃいましたら教えていただけませんか。よろしくお願いします。


1:[質問] りんりん [2002/02/24 01:14 ]

買い物カゴシステムでCGIを利用していますが、品目を選んで一度COOKIEにデータが送られた後、再度違う品目を選んでCGIにそのデータを送ると、前のデータが上書きされ、(?消え、)前に選んだ品目は無くなり新しいデータのみになってしまいます。複数のページから品目を選んだり、後から選んだ品目を追加できるようにしたいのですが良い方法はありませんか?また、反対に一度COOKIEに送られたデータはどういう仕組みで空になるのでしょうか?自分でも一応調べてみてはいるのですが、PEALにあまり詳しくないので、どなたかご存じの方がいらっしゃいましたら教えていただけませんか。よろしくお願いします。


2:[回答] TOM neko [2002/02/24 01:49 ]

Cookieは「名前=データ」という形で記録しますが、「名前=違うデータ」と同じ名前でデータを変えて送れば上書きされるし、「名前=」というふうに同じ名前でデータのないCookieを送れば空になります。

ところで、そのCGIは自分で作ったのでは無さそうですね。複数の品目を選択できるかどうかというのは、そのCGIの設定で選べるようになっていませんか。でなければ、その機能が無いかバグでしょう。


3:[質問] りんりん [2002/02/24 19:52 ]

そうなんです。自分では一から作れないのでCGI自体は、購入したのですが、数カ所のバグがありました。そのままではCGI自体が全然使えないバグがあったりしてとても困り、問い合わせのメールを送っても全然お返事が返ってこないので仕方なく、自分で何とかできないかと思って調べています。(一応コードの変更は禁止ではなく、著作権の部分だけ削除しないでくださいとあったので。。。)
後で調べながら考えたのですが、
今は、FORMで送信されたデータ→CGIで加工→COOKIEに送る→COOKIEを取り出して使用する、という形になっているのですが、
それを、例えば、FORMで送信されたデータ→CGIで加工の間に、一時保存ファイル(または、変数?)でFORMデータを保存して置いて、前のデータに新しく送信されてきたFORMデータを追記してから→CGIで加工に送ればいいのではないかとは思うのですが、その部分のコードがわからないのです。
もう一つは、COOKIEに送るときにCGIで自動的にID番号のようなものを振って、別々のCOOKIEデータとして保存されるようにして、次にそのCOOKIEデータを取りだして加工するときには、IDの1番から順番に読み込んでいくか。それだと、クッキーに保存したいくつかの該当データを全部受け取らないといけないのでより難しいような気がして。。。
何か、いい方法はありませんでしょうか。ぜひ、お知恵を拝借させてください。よろしくお願いします。


4:[関連] 小人 [2002/02/24 21:13 ]

他の掲示板にて、貴方が立てたスレッド、カテゴリーへの質問の所にて、回答されている方が複数いました。
最低限、マルチポスト(同じ内容の質問などを複数の掲示板等に書き込むこと」)した全ての掲示板にどのように解決したか、しているかを記述する事とお礼を書き込む事した方が良いと思います。
例えその回答が、解決に遠いものでありましても、一緒に悩んで考えてくれているのですから。
その善意の気持ちは大切にしてあげて下さい。
また、質問の内容が同じなのですから、ハンドルネームを何も言わないで次々変えて質問をする事も大変失礼に当りますので、ご注意になされた方が良いのではないかと思います。
苦言ご容赦下さい。


5:[質問] りんりん [2002/02/24 23:30 ]

すみません。マルチポストというのですか。。。初めて聞きました。
え〜と、、、ちょっと誤解されているようなので。。。
確かに数カ所の掲示板でご質問をさせていただいていますが、私としては、答えをいただいたレスに対して本当にありがたいと思っています。ですので、きちんと定期的に(少なくとも2日以内)チェックにいって、何か返事を書き込みしていていただいてたらちゃんとレスを送るようにしています。(私としても、本当に自分の提示した質問が解決できることを望んでいますし、こういう場所で自分よりもっと詳しい方の意見を聞けることがとてもたすかっています。)ですので、小人さんが、私について書き込んでいただいた方に対して善意の気持ちを大切にしていないと言うのはちょっと、誤解だと思うのですが。。。(それに関しては私も全く同じ気持ちなので)もし、私が提示した質問に対して解凍していただいてるのにずっと何日もほったらかしにしている掲示板があったら、もしかしたら、ちゃんとチェックできてなかったのかも知れません。すぐに、伺ってちゃんと、レス入れたいと思いますので、よろしかったら、そのURLを教えていただけませんか?よろしくお願いします。
PS。ハンドルネームの件は、そのときの思いつきで入れていたので、それが失礼だということは知らなかったです。本当に悪意はなったくないので、そのことはご理解ください。以後気をつけます。


6:[回答] TOM neko [2002/02/25 01:39 ]

マルチポストは置いといて。

有料でありながら使えないほどのバグがあり、その問い合わせにも答えないのは許しがたいことです。まずは何処のCGIであるか明らかにして下さい。あなたの勘違いである可能性も大いにありますが。

仕様で複数選択できないものを改造するのはCookieの問題だけですむことではありませんから、Perlに詳しくない人には無理です。複数選択した商品の一覧や、合計金額を出す等、殆ど新規作成と変わらないほど手間がかかります。

バグの場合なら、ソースを見れば解決するかもしれませんが、どこの何というCGIかをまず知りたいところです。配付サイトがあるならそこのURLをお教え下さい。


7:[関連] りんりん [2002/02/25 02:34 ]

CGIは、エーアイ出版のインターネットショップのためのCGI&JAVASCRIPTというCGI付きの本を買いました。その中のショッピングカートです。このショッピングカートでは、一度に複数の商品を選べることと、確認メールが相手とコチラの両方に自動で送られるというので購入しました。
最初に見つけたバグは、確認メールがヘッダから全く文字化けしてしまってちゃんと届かないというものでした。これに関しては、SENDMAILの設定に文字コード変換が入っていなかったのとコードの一部がつながっていたため、正常にメールが送られていませんでした。この時点で問い合わせをしましたが、返事がなかったので調べていったところ、自分で何とか解決できるレベルだったので直すことができました。(でも、私は、他に購入した人がサポートなしで動作できているのか不思議で仕方ありません。最初はマシン環境のせいか何かだと思っていたのですけど)
で、試験してみたら、今度は、商品の追加ができないということがわかりました。仕様のところにそれについて何も書かれていないので、その分に関しては、もしかしたら、おっしゃるとおり仕様なのかもしれないのですが、その処理とおぼしきコードがあるので(詳しくないので絶対、とは言えないのですけど)自分で書き足すか、別の複数選択処理のコードと見比べたら修正できるかも知れないと思ったのですけれど。。。どうも、ずっと調べて見ていると(最初は、もちろん素人考えなので、違う可能性もありますが、)クッキーにデータをセットする段階でどこかに小さな配列設定バグがあるのではないか、と。
その部分だけなら、全コードのほんの一部なので、バグかどうか見ていただいてもいいのか、それともやっぱり、ちょっとでも公開はしてはいけないのかちょっと判断できずにいます。その辺、著作関係的にどういう風に思われるかわからないので。配布とかではないのでいいのかも知れないですけど、どう思われますか?


8:[回答] TOM neko [2002/02/25 05:28 ]

なるほど、本でしたか。郵便でしか質問受け付けないとか、誤植やバグのためのサポートページも無いとか、インターネット関連の本出してるとは思えない出版社ですね。
http://www.ai-pub.co.jp/contents/question/index.html

インターネットに公開してあってもなくても、プログラム全部をここに書くのは著作権的に問題あります(配布自由なら可)。で、公開してあれば見に行くなりダウンロードで確認できますが、本だと無理ですね。部分的に書くなら大丈夫です(引用扱いで)。

解決する可能性は低いかもしれませんが、問題あると思う部分だけを書いてみて下さい。サブルーチン一つくらいかな。


9:[質問] りんりん [2002/02/25 14:27 ]

あー、そういうサポートの扱いだったんですか!全然知らなかったです。(もしかして、わざわざ調べていただいたんですか?なんていっていいか。。。ありがとうございます、本当に。)
このシステムは、setcook.cgi(FORMデータを処理してCOOKIEにセット)、modcook.cgi(COOKIEデータを計算して出力)、fmail.cgi(確認メールを送る)、maketag.cgi(注文ページのタグを作る)、cgi.lib(著作権?)、conf.pl(ドメイン名、WEBアドレス、消費税率などの設定ファイル)、form.text(お客様情報入力のフォーム部分、modcook.cgiが参照)、あとは、jcode.plや.htaccessとメールのヘッダ・フッタに利用するテキストファイルでできていて、多分今回の件は、setcook.cgiでデータを加工してCOOKIEに送る処理の間が問題なのではないかと思うのですが、(すみません、素人が初心者入門を参照しながら、3日かけて当たりをつけたので、もしかしたら全然見当違いかも知れません。)

<ここから>引用
--------------------------------------------
(初回投稿者の希望により削除) --------------------------------------------
<ここまで>

よろしくお願いします。


10:[回答] 奇人変人 [2002/02/25 17:33 ]

printして変数の中身を見ると言う発想はないかな?


11:[回答] えび [2002/02/25 18:03 ]

 ソース内に思いっきり URL 入ってますが、出版社ではなく著者の方がサポートしてくれるのではありませんか?

http://anglers-net.com/kyuukyuu/
http://anglers-net.com/kyuukyuu/aboutus.html

 ていうか、そもそもここがサポートしてくれなかったと言う話でしょうか。


12:[回答] えび [2002/02/25 18:05 ]

っていうか、

http://anglers-net.com/book/booksupport.html

に思いっきり解決策が書いてありました。
これにて終了、かしら。


13:[回答] TOM neko [2002/02/25 19:19 ]

>>12
お、そんなところにサポートありましたか。
とりあえずクリックしてみるってのは、探し物の基本ですね。

>>9
まさかとは思うでしょうが、郵便だけなのです。


14:[関連] りんりん [2002/02/25 20:44 ]

えー!すごい沢山、レス、ありがとうございます!!!本当にすみません、ご迷惑お掛けして。今、拝見したところなので、今から、一度、該当の修正箇所が原因かどうか、修正・検証してみます。(その後、また、ご報告にきます。)
あと、送信メールが文字化けする件ですが、
それは、
fmail.cgiの中の
LINE:255とLINE:256の間
LINE:270とLINE:271の間
LINE:287とLINE:289の間
LINE:306とLINE:307の間

print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-Type: text/plain; charset=iso-2022-jp\n";
を入れ、
LINE:285の「"Subject:」と「$confmailtitle"」の間に半角スペースを入れたら直りました。同じようにして全ての方が直るかどうかわかりませんが、私もとても助けていただいたのでどなたかが、これで解決できることがあれば、、、と思います。


15:[完了] りんりん [2002/02/25 21:08 ]

で、できました!!!解決できました!!!
すごい、悩んでたのに、あっという間にできました。
しかも、この件に関してバグがあるというのは、私の勘違いだったのですね。。。すごく恥ずかしいデス。。。
(まえの件があったのでてっきり。。。本当に失礼しました。申し訳ないです。もう、それしか言えません。素人が邪推するとろくなことがない、という自分自身への戒めにします。)
TOM nekoさん、えびさん、(その他の一緒に悩んでくださった皆様)本当に、本当にありがとうございました。
これから、よその掲示板で一緒に悩んでいただいた方々に解決の報告に行ってきます。ありがとうございます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World