PHPを使って申込フォームを作っています。


Postでデータを送信するようにしているのですが、フォームの数が多く、情報を受け取る$変数が20個くらいあります。

mb_send_mail関数を使ってメールを送るとすると、

mb_language("Japanese");
mb_internal_encoding("SHIFT-JIS");
mb_send_mail($mailto,$subject,$body,$header);

のようになると思いますが、

本文($body)に入れる$変数が多い場合は、どのように記述すればよいでしょうか?

分かりやすく言うと、
mb_send_mail($mailto,$subject,[この部分に$変数の情報を20個ほど入れたいです],$header);

急いでいるので、明確なお答をもらえればすぐに終了します。
ポイントもはずみます。

宜しくお願い致します。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/12/09 10:43:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答7件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント50pt
$body = <<<BODY
$hoge
$hage1 $hage2 $fuga1 $fuga2
BODY;
mb_send_mail($mailto,$subject,$body,$header);

PHP: 文字列 - Manual

ヒアドキュメントを使用する。

id:horizon58

ご回答ありがとうございます。

ヒアドキュメントというものは知りませんでした。

色々と代用できそうですね☆

メール内容はこれで作ろうと思います。

大変参考になりました。

2008/12/03 22:03:29
id:kn1967 No.2

回答回数2915ベストアンサー獲得回数301

ポイント50pt

変数が20個前後もあるということなので1つにまとめる式と

メールを送る操作の2行にすると良いかと思います。

$body = $a . $b . $c 以下略;

mb_send_mail($mailto,$subject,$body,$header);

id:horizon58

ご回答ありがとうございます。

変数を連結させるのに.を使うんですね。

前に一度使ったきりで忘れていました。

やはりこちらも色々と代用できそうですね!

大変参考になりました。

2008/12/03 22:10:14
id:Mook No.3

回答回数1314ベストアンサー獲得回数393

ポイント70pt

$body として送信したい体裁を作成しておけばよいのではないでしょうか。

変数への代入ですが、ヒアドキュメントを使用すると簡単にできるかと思います。

http://beginners.atompro.net/htm/faqphp/heardoc.shtml


ヒアドキュメント内は自由に記述できますが、変数は展開されるので下記のように書くことができます。

<?php
   $productName = "はてな";
   $price ="10,000";
   $number =5;


$body = <<<_BODY
   商品名:$productName
   価 格:$price
   注文数:$number
	:
	:
_BODY;

echo $body;
?>

実行結果

商品名:はてな

価 格:10,000

注文数:5

    :

    :

id:horizon58

ご回答ありがとうございます。

実行結果を見せて頂けたのでとてもわかりやすかったです。

このように項目ごとに並べたいと思っていたので、とても参考になりました。

メール内容はこれで作ろうと思います。

2008/12/03 22:06:40
id:tezcello No.4

回答回数460ベストアンサー獲得回数69

ポイント50pt

> mb_send_mail($mailto,$subject,[この部分に$変数の情報を20個ほど入れたいです],$header);

mb_send_mail($mailto,$subject,$data1.$data2.$data3.$data4.$data5.~.$data20,$header);

というように連結する事は出来ないのでしょうか?


他にも

$body = <<<EOL
お申込内容は以下の通りです。
おなまえ:{$data1}
住所  :{$data2}

希望商品
{$data3} : {$data4} 個

...

備考 :{$data20}
EOL;

なんて感じで、メール本文を作りさえすればよいと思います。

id:horizon58

ご回答ありがとうございます。

今回は申込みメールフォームを作るので下の方法がよさそうですね。

こんなに便利なものがあったとは知りませんでした。

大変参考になりました。

2008/12/03 22:25:12

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 chatii 3 2 1 2008-12-02 12:56:57
2 shellcat 6 5 0 2008-12-02 15:34:05
3 kaijikaiji 40 36 0 2008-12-03 10:20:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません