- ベストアンサー
メールフォームでif文を…
某メールフォームを改造中です。 返信メール部分を改造しているところですが、うまく出来ません。 まず、フォームに「名前/社名」と「担当者」を入力してもらいます。 もし、「担当者」が空白なら「名前/社名」様、とメールに出力。 もし、「担当者」があるなら「名前/社名」「担当者」様、とメールに出力させたいです。 普通にメール出力部分にif文を書くとそのまま出力されてしまいます。 その他の部分を見ると、STRでくくっている所はプログラム(?)を書いても出力されない様子。(あってます?) でも、やってみるとうまくいきません。 どうやったらこのようにできますか? 言語はperlです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
メール出力部分がどうなっているのか分からないのですが、 メール出力する前に何らかの変数の処理を行っていると思います。 例えば、もしメール本文中で「$name 様」という書き方をしているのであれば、$nameの部分をメール出力する前に決めているはずです。 ですので、その$nameを決めている命令文の箇所を書き換えれば良いということになります。
その他の回答 (2)
- elthy
- ベストアンサー率24% (124/500)
これはif文すら要りませんね。 便宜上、担当者を$men、名前/社名を$compに置きますが、 この場合メールに出力する時の書式を 「$comp $men様」 と書いてしまえばよいのです。 担当者が空白ならばそこには何も入りませんから 左詰に名前/社名のみが記されることになります。
お礼
返答ありがとうございます。 解決してしまったのでなんですが… そうしたかったんです。でも、$FORM{name}方式だと、なぜか2個続けるとちゃんと表示されず… で、#1さんの回答にも書きましたが、何とか出来ました。
- yomo3
- ベストアンサー率32% (88/269)
ご質問内容や、どういった回答を求めておられるのかは、とってもわかるのですが、回答するのは非常に困難です。メール文にifとか書かれるのは、書いたまんまを標準出力に出力する命令がその前に書いてあるからです。 #1の方の回答のように、それらの前に変数に代入してしまうのがよいのですが、その具体的な方法も、あなたがどの程度Perlを理解していらっしゃるか不明なので、書きようがありません。全部書いてしまうのも、しんどいので…… 適当な解説本を買って、じっくり研究なさるのがよろしいかと思います。ごめんなさい。
お礼
返答ありがとうございます。 とりあえずできちゃったのでなんですが… まだまだ勉強は必要ですね。努力します。
お礼
返答ありがとうございます。 なんか、自分で色々とやってたらできちゃいました。 改造しようとしているフォームは入力用htmlとCGIに分かれているタイプですが、各項目は、$FORM{name}という形でCGIに渡されていました。 単純に、$FORM{name} $FORM{tantou}様とすると、担当名と、様の文字が表示できませんでした。 なので、適当なところに $tanto = $FORM{tantou}; $namae = $FORM{name}; と変数化して、「$namae $tanto 様」とすることでちゃんと全部表示しました。 しかし、まだまだ勉強が必要なようです。 かいとうありがとうございました。