CGI-BBS > SO−HO > ショッピングバスケット > ショッピングバスケットの改造で届く題名を変更したい


カレッヂ
カレッヂ


質問者 takano minoru  投稿日 7/11(木) 18:38:05
ショッピングバスケットプロv5.24を使用しており、
ショッピングバスケットプロ お役立ち情報 を読み
届く受注メールの題名を変えることが出来るのを知り、
早速、その部分を以下のように変更させて頂きました。

print OUT &jis("Subject: \[$in{'_order'}\] $in{'_SUBJECT'}\n");
↓
print OUT &jis("Subject: $in{'_SUBJECT'}\n");

さらに便利に使いたいため質問がございます。

juchu.txtのフォームから送信されるメールの題名は
以下のようにしております。
<input type=hidden name="_SUBJECT" value="■様 ">
このようにするとメールの題名が
「■様」でとどきます。

これをjuchu.txtのフォームの
<INPUT type="text" name="ご注文主氏名;csv" size="20">
<input type="radio" name="お支払い方法;csv" value="代引き">

上記2つの項目に書き込んだ名前と選んだ内容(この場合は代引き)を
■様のところに挿入したいのです。

メールで送られてくる題名が
(例えですが)
「■○○○○様 代引き」
のようにしたいのです。

何か良い方法はございません?
今は手作業でおこなっております。

よろしくお願い申しあげます。

プロバイダ参照:http://www.admiral.ne.jp/
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:next ftp
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:beginner

回答者 呑兵衛@大阪  [削除]  投稿日 7/12(金) 20:05:16
cargo.cgi 824行目付近
foreach (@JUCHU) { print; }
で jucyu.txt が読み込まれHTML出力されます。
その後、スクリプトの初期段階 300行目付近
if ($name =~ /(.+);csv/i) { push(@CSV,$value); $name = $1; }
により、リスト @CSV に購入者情報が取り込まれ、
320行目
$in{$name} = $value;
ですべてのフォームデータが 連想配列 %in に格納され、
328行目付近で
if ($name2 !~ /^_/ && $name2 !~ /^;/) { push(@in2,"$name2\0$value2"); }
のように、一定条件のフォームデータを、リスト @in2 に格納し、
979行目付近で
foreach (@in2) {
($key,$val) = split(/\0/,$_,2);
$key2 = $key;
if ($key2 =~ /(.+);csv/i) { $key2 = $1; }
$val2 = $val;
$val2 =~ s/\n/<br>\n/g;
print "<TR><TD BGCOLOR=FFEEDD ALIGN=RIGHT>$key2</TD><TD ALIGN=LEFT>$val2<input type=hidden name=\"$key\" value=\"$val\"></TD></TR>\n";
}
のように購入者情報を展開し、
306行目付近で
&jcode'convert(*name,'jis');
&jcode'convert(*value,'jis');
$mail{$name} = $value; #この連想配列は以後使われていない。
if ($name !~ /^_|ORDER|CARGO|GNAME|CODE|TANKA|KAZU|TAXRATE|REM1|REM2|REM3|REM4|CALS1|CALS2|DEBUG|SUBMIT/) { push(@MAIL,"$name\0$value"); }
と、リスト@MAILに再びフォームデータを取り込み
1074行目付近で
foreach $value (@MAIL) {
($name,$value) = split(/\0/,$value);
なんやかんや
print OUT "$name = $value\n";
push(@KAKUNIN2,"$name = $value\n");
}
のように項目ごとにちぎり、確認用メールには
1124行目付近で
foreach $value (@KAKUNIN2) { print OUT $value; }
と先のリスト@KAKUNIN2 を展開しています。

juchu.txt の各項目のラベルに何らかの工夫をして、cargo.cgi の購入者情報が展開される項目を
上の関係するスクリプトすべてで処理を行う必要があります。
質問者 takano minoru  [削除]  投稿日 7/15(月) 00:33:44
呑兵衛@大阪さま
お答えいただきましてありがとうございました。<(_ _)>
お答えいただいた内容を見る限り、
とても難しそうで、私には改造できそうにありません。
せっかくお答え頂きましたが、今回は、断念いたします。
今後とも宜しくお願い申しあげます。<(_ _)>

返信(回答)する


Web裏技