CGI-BBS > SO−HO > ショッピングバスケット > プロv6の改造で注文者にメールを自動送信しないようにしたい。


カレッヂ
カレッヂ


質問者 yuzo0901  投稿日 2005/12/13(火) 17:30:12
ショッピングバスケット・プロv6ですが、
1点だけ解消できればほぼ完璧に商売ニーズを満たします。

普通の場合は「トラブル」となるのでしょうが、
注文者に自動的に送信される注文内容メールを送信したくないのです。

理由
1)フォームを改造して、カード番号を取り込めるようにした。
2)オーダー通知メールで、サイト管理者が在庫確認・カード処理をしてから、
注文確認メールを発信したい。
3)カードフォームはSSLで守るとしても、注文内容メールが
自動発信されてしまうと、カード番号まで内容として含まれてしまって怖い。

但し、管理者には注文内容はカード情報も含めて送信して欲しいのです。

以上です。
解決法を探していますがなかなか見つかりません。
宜しくお願い致します。

【習熟度】多少の改造ができる

回答者 ??????????しあわせのツボ  [削除]  投稿日 2005/12/13(火) 18:55:37
ざっと見たところ、ご希望の改造自体は不可能ではなさそうですが、
その設計はやめた方が安全です。
バスケットを置いたサーバから受注者がメールを受け取るまでの間、
平文でカード情報の入ったメールが通っていくことになります。
これではフォームだけSSLをかけても無意味です。

せめて、せっかくCSVに落としているのですから、メールは通知だけにして
注文内容はサーバのCSVから取得するくらいにはしておかないと、
お客さんも安心して発注できないでしょう。
質問者 yuzo0901  [削除]  投稿日 2005/12/14(水) 00:39:52
お返事ありがとうございました。
仰る旨は良く理解できます。

設置にあたって上司の方からの強い要望があったものですから、、、。
そんなものに負けてしまってはだめですね。
反省。

ところで、重ねて質問です。
お返事の中には「メールは通知だけにして、、、」とあります。

「フォームの中にカード情報を記入させている」という前提で、
それを除いた情報だけを通知メールとして発信させるという事が可能なのでしょうか?

恥ずかしい質問かもしれませんが、アドバイス頂けると大変助かります。
宜しくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 2005/12/15(木) 12:21:53
cart.cgiの後ろの方(「オーダー処理」ブロックの後半)に
foreach(@in) {
で始まるループが2つあります。
ひとつめが店側、ふたつめがお客さんに送られるメールになります。
ここで
next if /^カード情報のフィールド名/;
のように、不要な情報をprintしないようスキップさせればいい訳です。
質問者 yuzo0901  [削除]  投稿日 2005/12/15(木) 13:15:11
しあわせのツボ様

アドバイスをありがとう御座いました。
感謝感激です。

ところが、どうも私、コードの書き方がよく理解できていないようです。
教えて頂いた「next if /^カード情報のフィールド名/;」をどこに挟み込めばいいのでしょうか?

また、挟み込むのはこれだけでしょうか?
本当に知恵不足の為、もう一度詳しくアドバイス頂く事は可能でしょうか。

ループの場所は把握できました。
頂いたアドバイスの部分を挟み込んだのは、
====================
if (/^\.\t(.*)/) { print OUT &jis("$1\n"); }
====================
の直後です。

結果は、Internal Server Errorとなってしまい、どうにもなりませんでした。
思い切って試しに注文者側のコードを「foreeach (@in)」から「print Out "\n";」まで、
削除してみました。
当然、オーダー内容を含まない単なる挨拶状だけが送信されています。
最悪、これでも目的は達せられるのですが、できましたらアドバイスをお願い致します。



回答者 しあわせのツボ  [削除]  投稿日 2005/12/15(木) 13:43:46
その場所はちょっと後ろすぎです。foreachの直後がいいでしょう。
カード情報が複数フィールドに分かれている場合は、フィールドの数だけ並べてください。
質問者 yuzo0901  [削除]  投稿日 2005/12/15(木) 17:00:37
しあわせのツボ様

度重なるお願いを聞いて頂きまして本当にありがとうございます。
仰る通り、foreach直後にコードを差し込んでみましたが、、、、
やはりInternal Server Errorに変化はありませんでした。

諦めたくはないのですが。
ここまでアドバイスを頂いて実現できない自分が情けないです。

返信(回答)する

 


Web裏技