CGI-BBS > SO−HO > ショッピングバスケット > 簡易ショッピングバスケットで名前だけをもう一度抜き出したい。


カレッヂ
カレッヂ


質問者 フランソワーズ  投稿日 2006/7/16(日) 12:42:50
イタリア製インナーのネット販売を行っております。
この度、簡易ショッピングバスケットversion 2.10の改造で
受注メールの"名前"だけをもう一度抜き出して、メールに
表示(print OUT)させたいと思いますが、
どの様にしたら良いでしょうか?
もしお分かりになられる方がおられたら、是非お知恵を
お貸し下さい。

【習熟度】(未選択)

回答者 rescue  [削除]  投稿日 2006/7/20(木) 21:54:52
ご質問の意味が分かりません。
「受注メールの"名前"だけをもう一度抜き出して、メールに表示させたい…」

同じメール中に商品名を複数表示させたいという意味であれば、
商品名が入っている変数を使えばいいと思います。
ただ、改造を試みていらっしゃる方なら分かることなので、
やはり質問の意味が分からないですので、別の言い方で質問してみてください。

----
サポート掲示板利用ご案内の通り、当方はバグと思われる事象以外には参加しません。
ただ、時間が許す場合に例外的に回答する場合がありますが、継続的にやりとりが
出来ない場合があります。ご理解ください。
質問者 フランソワーズ  [削除]  投稿日 2006/7/22(土) 15:36:39
質問が不十分で申し訳御座いません。

受注メールの最後尾(日付の後)に、「氏名」のみを、
もう一度表示させるようにしたいと思っておりますが、
変数等は良く分かりません。

pearlの知識はほとんどありませんので、
プログラムの一文を、ペーストすれば
良いような抜き出し方があればお聞かせ願いたく存じます。

以上よろしくお願い致します。
回答者 rescue  [削除]  投稿日 2006/7/23(日) 21:10:45
バージョンはv2ですね?

もしフォームの設定が
<input type="text" name="名前">
であれば、$in{'名前'}という変数にその入力値が入りますので、
cargo.cgiのメール送信の部分の
print OUT "\n"; # 661行目
よりも後ろに、
print "$in{'名前'}様\n";
のような感じで任意の位置に挿入すればいいと思います。
\nは改行の意です。
質問者 フランソワーズ  [削除]  投稿日 2006/7/25(火) 15:04:17
お蔭様で上手くいきました。
お忙しい中ご返答頂きまして、有り難うございました。
Perlも少しずつ勉強して行きます。

あと、追加質問で非常に申し訳ございませんが、
合計金額をメール末尾に再度表示させようとしましたら、
合計金額に消費税が1%含まれて表示されてしまいます。
(消費税率は0%に設定しております)
やはりコピー&ペーストでは無理なのでしょうか?
ちなみに
foreach (@CART) {

	s/\n//g;
	($CODE,$NAME,$UNIT,$AMOUNT) = split(/\t/,$_,4);

	$SHOKEI = $UNIT * $AMOUNT;
	$ALL += $SHOKEI;

	1 while $UNIT =~ s/(.*\d)(\d\d\d)/$1,$2/g;
	1 while $AMOUNT =~ s/(.*\d)(\d\d\d)/$1,$2/g;
	1 while $SHOKEI =~ s/(.*\d)(\d\d\d)/$1,$2/g;

	print OUT &jis("●$NAME\n");
	print OUT &jis("  $UNIT x $AMOUNT = $SHOKEI\n\n");
}

$NUKI = &uchi($ALL);
1 while $ALL =~ s/(.*\d)(\d\d\d)/$1,$2/g;
1 while $NUKI =~ s/(.*\d)(\d\d\d)/$1,$2/g;

print OUT "-----------------------\n";
print OUT &jis("計 $ALL円 (内消費税 $NUKI円)\n");
print OUT "=======================\n\n";

の部分をペーストしました。
重ね重ね申し訳御座いません。
回答者 rescue  [削除]  投稿日 2006/7/25(火) 21:37:05
どの部分をどこにコピペしたのか分からないのでなんともいえませんが、
$ALLだけを出力すればいいのではないかと思います。$ALLには合計額が入っています。

1%加算された金額?ということですが、改造しない場合でも起きますか?
それとも、改造したら…ですか? 既に$ALLには数字が入っているので、
何か計算を入れてしまうと処理が狂います。
質問者 フランソワーズ  [削除]  投稿日 2006/7/26(水) 12:06:50
申し訳ございません。1%ではなく、0.1%でした。

>どの部分をどこにコピペしたのか分からないのでなんともいえませんが、
>$ALLだけを出力すればいいのではないかと思います。$ALLには合計額が入っています。

文末の再度名前を表示させた後の行にコピペしました。

>1%加算された金額?ということですが、改造しない場合でも起きますか?
>それとも、改造したら…ですか? 既に$ALLには数字が入っているので、

改造しない部分(一回目の合計)は金額が合っていますが、
コピペで文末に2回目の表示をさせると、合計だけが0.1%加算された金額
になります。何故でしょうか。
回答者 rescue  [削除]  投稿日 2006/7/26(水) 21:29:27
ちょっと全体が見えなくなっているんですが、foreach (@CART) { …
の処理をなぜ入れたのか分かりませんが、+= という計算で数字が加算されてしまうので、
変数だけを使ってください。合計金額は $ALL という変数に入っています。
質問者 フランソワーズ  [削除]  投稿日 2006/8/2(水) 16:04:31
変数のみを使用したら、全て上手く出来ました。
お忙しい中、丁寧にご返答頂き、誠に有り難うございました。
サイトの益々のご繁栄をお祈り致します。

このページは終了したので返信(回答)は書きこめません
 


Web裏技