• ベストアンサー

PHPでのフォーム送信・・・・

function send_mail($name,$mail,$birth,$high,$pref,$hobby,$contents,$host,$ua,$time) { session_unset(); if(!$name) $name = "NoName"; if(!$sbj) $sbj = "From Mailform+"; $mes = "$name($mail)$high 様からのお問い合わせです。\n\n"; $contents = str_replace("<br>", "\n", $contents); if($url) $mes .= "●URL: $url\n\n"; $mes .= "【お問い合わせ内容】 (".date('Y.m.d (D) H:i:s', $time).")\n"; $mes .= "メールアドレス:::($mail)\n"; $mes .= "誕生日($birth)\n"; $mes .= "身長($high) cm\n"; $mes .= "お住い:::($pref)\n"; $mes .= "趣味:::($hobby)\n"; $mes .= "疑問点:::($msg)\n"; $mes .= "───────────────────────────────────\n"; $mes .= "$contents\n"; $mes .= "───────────────────────────────────\n"; $mes .= "$host\n$ua"; if(get_magic_quotes_gpc()) $mes = stripslashes($mes); $mes = mb_convert_encoding($mes, "JIS", "SJIS"); $header = "From:" .mb_encode_mimeheader($name) ."<$mail>"; $send = mb_send_mail(RECIPIENT, $sbj, $mes, $header); if($send) success("正常に送信されました"); else error("送信に失敗しました"); } ?> 上記PHPなのですが、送信自体は大丈夫なのですが、 誕生日・身長・お住い・趣味・疑問点 がメールを受信時に反映されません。 $mail と $name だけはちゃんと入力したとおりに出ます。 どの部分を訂正すれば正しくメールを受け取れますでしょうか・・・。 PHP初心者なので検討違いの質問をしていましたらすみません・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • unchikun
  • ベストアンサー率22% (2/9)
回答No.1

ご質問のソースをそのままコピーして、send_mail(1,2,3,4,5,6,7,8,9,0); と適当な値を引数に与えて呼び出したら問題なく動作しました。($msgは指定されてないので表示されませんでしたが) $birth,$high,$pref,$hobby,$contents,$host,$ua,$time にちゃんと値が入ってない可能性が大です。 echoなりファイルに書き出すなりしてみて、変数に値が入っているかチェックしてみてください。

ash03
質問者

補足

本当ですね・・・。 確認画面をみたら 未入力になってました。。。 http://www.xtrec.com/script_mf.htm こちらのPHPスクリプトを使って、項目の追加をしたいのですが・・・。 ちゃんと値を入れるにはPHP自体を変更するのでしょうか。 それともテンプレ部分?を変更するのでしょうか・・。

その他の回答 (2)

  • unchikun
  • ベストアンサー率22% (2/9)
回答No.3

MailForm+ ver.0.26(JavaScript版) をダウンロードして使ってみましたが、sample.phpではua等も表示されますので、改造の仕方がまずいのだと思います。 ソースもざっと見ましたが、テンプレートとphpの両方を変更する必要がありますね。たとえばbirthを追加するならテンプレート中のどこかに <dd><input name="birth" type="text" size="25" value="<?php e($birth) ?>"></dd> を追加したり、mail.php の関数 show_form()check_view(), check_post(), post_data(), send_main() に手を加えるなどの修正が必要です。 おそらく他のPHPスクリプトを探す方が早いような気がします。

回答No.2

$mes .= "誕生日(".$birth.")\n"; という風に書かないといけないんじゃないかな。

関連するQ&A