- ベストアンサー
PHP+MySQLで問い合わせフォームからの入力値をメール本文に代入する方法
- PHP+MySQLで問い合わせフォームからの入力値をメールの本文に代入する方法を教えてください。
- 具体的には、MySQLに登録したメール本文に問い合わせフォームに入力された名前やメールアドレスなどを代入したいです。
- 現在、問い合わせフォームの入力値がメール本文に正しく代入されない状況です。どのようにすれば実現できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
代入するのではなく、登録されているひな形の名前部分などを「置換する」という方向で考えればよいかと思います。
その他の回答 (2)
- sykt1217
- ベストアンサー率34% (277/798)
補足ありがとうございます。 そういうことですか^^; テキスト型ということは、DBに登録されたひな形の変数も文字列扱いされてしまうので、恐らくそのひな形を用いてはNGでしょうね。 $result = mysql_query($sql);//SQL発行 $rtn = mysql_fetch_assoc($result); $mail_body = $rtn['toiawase_name'] . $rtn['hametome_mail_body']; //$rtn['toiawase_name'] == 問合せ者名 //$rtn['hametome_mail_body'] == "様\r\nお問い合わせを受け付けました" //であることが前提 これが一番手っ取り早いと思います。 それとも・・・また意味取り間違えてます??^^; 要するにひな形の文の「○○様」の「○○」をDBから引っ張った値にしたいってことですよね?
お礼
ご回答頂きましてありがとうございます。 文字を置き換える方法でどうやらうまくいったようです。お教え頂きまして ありがとうございました^^
- sykt1217
- ベストアンサー率34% (277/798)
一つのテキストボックスに登録したいということですか? $mail_body = $namae . "様" . "\r\n" . $naiyou 単純にこれではだめですか? それとも意味が違うでしょうか?
補足
早速のご回答ありがとうございます。私の説明が悪かったようで申しわ けありません。 まず、メール本文を問い合わせフォームとは別個のフォームから事前に ------------------------------------------------------------------ $namae様 お問い合わせを受け付けました ------------------------------------------------------------------ としてMySQLに登録しています。この本文を登録しているテーブルを仮に Answerテーブルとします。この本文のデータはAnswerテーブルのhametome_mail_bodyに登録されています。 問い合わせフォームから問い合わせをする際、問い合わせ完了のファイ ル仮にmail_comp.phpとします。 mail_comp.phpは、問い合わせ内容や問い合わせをした方の名前・メール アドレス等の記入内容をMySQLに登録します。仮に問い合わせ内容を登録 するテーブルをtoiawaseテーブルとします。 mail_comp.phpは、問い合わせを問い合わせフォームから頂いた際にtoiawaseテーブルに問い合わせデータを登録するとともにSELECT文で、Answerテーブルのhametome_mail_bodyに入っている本文のデータ(上 の点線の中の文字列)を取り出し、mb_send_mail関数でメールを送信 しています。 その際にSELECT文で、Answerテーブルのhametome_mail_bodyに入って いる本文のデータ(上の点線の中の文字列)を取り出し、$mail_body に代入しているのですが、Answerテーブルから取り出した本文のデー タ(上の点線の中の文字列)の$namaeに問い合わせフォームに入力さ れた名前を代入したいという事なのです。 うまく説明できなくて申し訳ありません^^;
お礼
$toiawase_name様を__name__ 様に変更し、よくよく考えてみれば マルチバイト文字だったので、str_replaceをmb_ereg_replaceに変更 してみたところ、うまくいきました。 アドバイスいただきまして、ありがとうございました。
補足
早速のご回答ありがとうございます。 置換するというとstr_replace関数などを使って$namaeを置き換えるような 感じでしょうか? ------------------------------------------------------------------ $toiawase_name様 お問い合わせを受け付けました ------------------------------------------------------------------ ひな形の内容を上記のように直し、 $email = $mail; $mail_body1 = $row["hametome_mail_body"]; $mail_body2 = str_replace($toiawase_name, $namae,$mail_body1); $mail_body = $mail_body2; $mail_title = $row["hametome_mail_title"]; $from = 'メールアドレス'; $header = "From: $from\n"; $parameter="-f メールアドレス"; mb_send_mail ($email, $mail_title, $mail_body,$header,$parameter); としてみたのですが、どうもうまくいきません^^;お手数かとは存じ ますが具体案を教え頂けませんでしょうか?