• 締切済み

jQueryによる非同期のメールフォーム を設置

1ページを上下に移動するサイトを作っています。 送信内容の確認で他のページに移動させたくないので 下記のサイトのフォームを設置したいと思っているのですが うまくいきません…。 http://t2421.jp/archives/450#comment-32 「以下の内容でメールを送信してもよろしいですか?」で「OK」を押すと 下記のよう(PHPの内容そのまま)に表示されて送信できません。 <!--?php $response = "送信完了しました。"; // 言語を日本語に設定する mb_language("ja"); // 内部文字エンコードを設定する mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("○○○×××@yahoo.co.jp", $_POST["subject"], $message, "From: " . $_POST["mail"])) { $response = "送信エラーが発生しました。"; exit("error"); } echo $response; ?--> form はHTMLに記述しています。 何か設定が必要なのでしょうか? よきアドバイスをよろしくお願いします。 サイトの管理者さんに問い合わせしてもお返事がもらなかった のでこちらに投稿しました。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

phpスクリプトは「send.php」ですよね。 とりあえず、<!--?php とか ?--> で括っているのを、ちゃんとphpスクリプトの開始・終了の記述に書き替えては?今のままだとphpとして動作するとは思えませんので。

saru7979
質問者

お礼

アドバイスありがとうございました。 無事送信できました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpのシンプルなメールフォーム

    あるサイトにて、単一phpのメールフォームのソースをコピーし、使用としましたが、 設定したメールアドレスに、送信ボタンを押しましたが、 受信されません。  ・送信後、「メールを送信しました」と表示されます。  ・送信のあて先は、何も反応なし。  ・ソースの「●●@●●」はダミーです。 以下ソースです。原因がわかりますでしょうか。ご教授のほどよろしくお願いします。 ―――――――――――――――――――――――――――――――――――― <?php // 送信フラグ $send_flg = false; // エラーメッセージ $err_msg = array(); // 送信ボタンを押した後の処理 if ($_POST["post_flg"]) { // エラー if ($_POST["name"] == "") { $err_msg[] = "「お名前」は必須です"; } if ($_POST["email"] == "") { $err_msg[] = "「メールアドレス」は必須です"; } // エラーが無ければ送信 if (count($err_msg) == 0) { // 宛先 $mail_to = "●●@●●"; // 送信元アドレス $mail_from = "form@example.com"; // 件名 $mail_subject = "メールフォームから送信がありました"; // 本文 $mail_body = ""; $mail_body.= "■お名前\n".$_POST["name"]."\n\n"; $mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n"; $mail_body.= "■コメント\n".$_POST["comment"]; // 送信処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">"); $send_flg = true; $_POST = array(); } } ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>メールフォーム</title> </head> <body> <?php // 初期フォーム表示 if (!$send_flg) { ?> <h1>メールフォーム</h1> <?php // エラーメッセージがある場合 if (count($err_msg) > 0) { ?> <p style="color:red;"> <?php foreach ($err_msg as $val) { ?> ※<?php echo $val ?><br> <?php } ?> </p> <?php } ?> <form action="mail.php" method="post"> <p> お名前<br> <input type="text" cols="30" name="name" value="<?php echo $_POST["name"] ?>"><br> </p> <p> メールアドレス<br> <input type="text" cols="30" name="email" value="<?php echo $_POST["email"] ?>"><br> </p> <p> コメント<br> <textarea name="comment" cols="50" rows="10"><?php echo $_POST["comment"] ?></textarea><br> </p> <input type="submit" name="post_flg" value="送信する"><br> </form> <?php // メール送信後の表示 } else { ?> <br><br><br><br>メールを送信しました。<br> <?php } ?> </body> </html> ――――――――――――――――――――――――――――――――――――

    • ベストアンサー
    • PHP
  • フォームから同じドメイン宛てのメールが届かない

    はじめまして。 サイトにPHPでお問い合わせフォームを設置したのですが、 メール送信先を同じドメインのアドレスに設定したところ、メールが受信されません。 違うドメインの場合はは受信されます。 たとえば、 http://www.abc.com/にフォームをアップしています。 メールの送信先をinfo@abc.comにすると、メールが届きません。 サーバーの設定などに原因があるのでしょうか。 それともフォームのプログラムに原因があるのでしょうか。 プログラムはこんな感じです。 <?php mb_language("Ja") ; mb_internal_encoding("SJIS") ; $mailto="info@abc.com"; $subject="お問い合わせフォームより"; $message .= "お問い合わせフォームよりメッセージが届きました。\n\n"; $message .= "【お名前】"."\n"; $message .= $_POST['name']."\n\n"; $message .= "【メールアドレス】"."\n"; $message .= $_POST['mailaddress']."\n\n"; $message .= "【タイトル】"."\n"; $message .= $_POST['title']."\n\n"; $message .= "【本文】"."\n"; $message .= $_POST['message']."\n\n"; $mailfrom="From:" .mb_encode_mimeheader($_POST['name']) ."<".$_POST['mailaddress'].">"; mb_send_mail($mailto,$subject,$message,$mailfrom); ?> よろしくお願いします。

    • ベストアンサー
    • PHP
  • メール送信フォーム

    mb_send_mail($to, $subject, $message, $from); でフォームのメール送信を作ったのですが、(エラーはでません)メールが送信されません。PHPのバージョンは4.23 HTMLでは <FORM METHOD="POST" ACTION="send.php" ENCTYPE="text/plain"> <input type="hidden" name="subject" value="質問"> </FORM> 省略 send.phpでは <?php mb_language("ja"); mb_send_mail($mail, $subject, $message, $from); ?> どこがおかしいのかわかりません? なにかヒントをいただけますか?

    • 締切済み
    • PHP
  • Jquery AJAXで、1ページに複数のフォームを設置するにはどうす

    Jquery AJAXで、1ページに複数のフォームを設置するにはどうすればいいでしょうか? 現在、以下のコードでメール送信をしてます。 1ページに複数のフォームがあり、押されたフォームボタンによって、そのフォームに対応した各value値をajaxの処理のところで受け取りたいです。 今のコードだと1つ目のフォームボタンを押すと正常にメールが送信されますが2つ目のフォームボタンを 押しても何も起こりません。 formにユニークなidをつけてsendmail.phpに変数を渡す前に、フォームボタンが押される度に ここの値をクリアしなければならないのかなと思っています。 >data : { message: $('#message').val(), exebtn:$('#exebtn').val()}, ----- index.php ------------------------- <略> <script type="text/javascript"> //<![CDATA[ $(function(){ $('#exebtn').click(function() { $.ajax({ type: "post", url : "sendmail.php", data : { message: $('#message').val(), exebtn:$('#exebtn').val()}, datatype:'text', success: function(data) { if(data != ''){ alert(data); }}, }); }); }); //]]> </script> </head> <body> <MTEntries> <form id="link" method="POST"> <input id="message" type="hidden" name="message" value="<$MTEntryTitle$>"/> <input id="exebtn" type="button" name="exebtn" value="リンク切れ"/> </form> </MTEntries> </body> </html> ----------------------------------------- ---- sendmail.php -------------------- <?php header('Content-Type: text/plain; charset=UTF-8'); $off=$_POST["exebtn"]; $message=$_POST["message"]; if ($off != ""){ $to = "hogehoge@hoge.jp"; $from = "hoge1@hoge.com"; $header = "From: $from\n"; $subject = "報告"; $subject = mb_convert_encoding($subject,"JIS","utf-8"); $message = mb_convert_encoding($message,"JIS","utf-8"); $ret = mb_send_mail($to,$subject,$message,$header); if($ret){ $msg = '送信しました'; }else{ $msg = '送信失敗しました'; } } echo $msg; ?> --------------------------------------------- ご教授、宜しくお願い致します。

  • メール送信

    現在独学でPHPの勉強をしており、行き詰まってしまいここで質問をさせて頂きました。 行き詰まった内容ですがphpでメール送信のスクリプトを書いたのですが エラーが出てしまい送れません。 こちらが私が書いたスクリプトになります。 <html> <head><title>mail.php</title></head> <body> <?php $address = $_POST["address"]; $subject = $_POST["subject"]; $message = $_POST["message"]; $header = "Content-Type: text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address, $subject, mb_convert_encoding($message, "JIS", "EUC-JP"), $header)){ print("送信完了しました。"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> エラーの内容ですが、 Fatal error: Call to undefined function mb_language() in C:~となっております。mb_languageが使えないとの表示が出てくるのですが、 色々な本などを調べてもこれを使ってる所もありなにが問題なのか分かりません。 php.iniでの設定(mbstring.internal_encoding = EUC-JP、extension=php_mbstring.dll)の ; などは外してみたりしてるのですが どうにも分かりません。 どなたかお分かりになるかたがいましたら是非教えて頂けないでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpを使ってのメール送信について

    会社のホームページを任されて、phpでメールフォームを作成中です。 phpは本を購入したり、サイトを閲覧しながら勉強中ですが時間が取れず、まださほど詳しくありません。 1.情報入力→2.確認画面→3.お礼画面 と3頁を作ってそれぞれ確認しましたところ、入力情報は受け渡しができました。 その後、メールアドレスへ入力していただいた情報を送るプログラムを見様見真似で作ってみたところ動かなくなってしまいました。 どこがおかしいのか添削・ご意見(できれば初心者にもわかるように)いただけないでしょうか。 よろしくお願いします。 <p>入力内容</p> <form method="POST" action="(3.のページへのパス)"> <table border="1" width="80%" cellspacing="5"> <tr><td align="right" width="20%">お名前:</td> <td align="left" width="80%"><?php print($_POST['name']);?></td></tr> <tr><td align="right">e-mail:</td> <td align="left"><?php print($_POST['mail']);?></td></tr> <tr><td align="right">お問い合わせ:</td> <td align="left"><?php print($_POST['comment']);?></td></tr> </table> <p></p> <input type="submit" name="Submit" value="送信"> </form> ↑ここまでが確認画面でこの下にすぐ続けて <?php $name = $_POST['name']; $mail = $_POST['mail']; $comment = $_POST['comment']; $to = '(送信先メールアドレス)'; $subject = 'サイトからの問い合わせ内容'; $massage = '$name . $mail . $comment'; if(!$_POST['submit']){ mb_language("Japanese"); mb_internal_encoding("UTF-8"); $header = 'From: ' . $from . "\n"; $to = mb_encode_mimeheader(mb_convert_encoding($name, "JIS", "UTF-8")) . ' <' . $mail . '>'; $param = '-f' . $from; mb_send_mail($to, $subject, $message, $header, $param); } ?> ↑2頁めに挿入したメールへの送信指示の(つもりの)部分です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • jQueryのノンリロードのメールフォーム

    jQueryを使用したノンリロードのメールフォームを作成しているのですが、 メールの受信でチェックボックスで選択した項目が「Array」と表示されてしまい正しく表示できません。 どうすればいいのでしょうか。 ご教示お願いいたしあmす。 独学で作成しており、jQueryのコード自体は下記のサイトを参考にし、その他のHTMLとPHPは自分で作成しました。 参考にしたサイト http://studio-key.com/tips/jquery-mailform-01 【THMLのコード】 <dt>お問い合わせ項目<span class="ind">※必須</span><br>(複数選択可)</dt> <dd> <ul> <li><input type="checkbox" name="tec[]" id="check1" value="Aについて" class="validate[minCheckbox[1]]"> <label for="check1"> Aについて </label></li> <li><input type="checkbox" name="tec[]" id="check2" value="Bについて" class="validate[minCheckbox[1]]"> <label for="check2"> Bについて</label></li> <li><input type="checkbox" name="tec[]" id="check3" value="Cについて" class="validate[minCheckbox[1]]"> <label for="check3"> Cについて</label></li> <li><input type="checkbox" name="tec[]" id="check4" value="Dについて" class="validate[minCheckbox[1]]"> <label for="check4"> Dについて </label></li> </ul> </dd> 【PHPのコード】 <?php if (empty($_POST)) { echo ""; exit; } ?> <?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { echo ""; exit; } // セッションの開始 session_start(); ?> <?php // 入力値の取得・加工 $name = htmlspecialchars($_POST['name'], ENT_QUOTES, "UTF-8"); $email = htmlspecialchars($_POST['email'], ENT_QUOTES, "UTF-8"); $tel = htmlspecialchars($_POST['tel'], ENT_QUOTES, "UTF-8"); $list=$_POST['list']; $tec=$_POST['tec']; $comment= htmlspecialchars($_POST['comment'], ENT_QUOTES, "UTF-8"); // メール本文の組み立て $to = "123456789@gmail.com"; $title = "【お問い合わせフォームより】"; $ext_header = "From:{$email}"; $body = <<<EOM -------------------------------------------------- 【お問い合わせフォームからのメール】 お名前:{$name} メールアドレス:{$email} 電話番号:{$tel} 都道府県:{$list} お問い合わせ内容:{$tec} 本文:{$comment} -------------------------------------------------- EOM; //文字コードの設定 mb_language("Japanese"); mb_internal_encoding("UTF-8"); // メール送信の実行 $rc = mb_send_mail($to, $title, $body); if (!$rc) { exit; } else { $_SESSION = NULL; } ?>

    • ベストアンサー
    • PHP
  • jQuery $.ajax JSON形式のPOST

    jQuery $.ajax JSON形式のPOSTでフォーム内容を送信し、送信先のPHPでメール送信させるプログラムをかいているのですが、どうしても$.ajaxのerrorが呼び出される状況です。errorが呼び出されますが、PHPの方のメール送信はできております。 PHP側の出力がうまくいっていないのではないかと思いますが、原因がわかりません。どなたかご教授いただけないでしょうか?宜しくお願いします。 ---js--- $("#send").click(function(){ var NAME = $('#name').val(); var EMAIL = $('#email').val(); var TITLE = $('#titlel').val(); var COMMENT = $('#comment').val(); $.ajax({ url : "sendmail.php", dataType : "json", data : {name:NAME, email:EMAIL, title:TITLE, comment:COMMENT}, type : "post", success : function(data){ if(data != ''){ alert(data.result); } }, error : function(){ alert("通信に失敗しました。"); } }); }); ---sendmail.php--- if($_SERVER["REQUEST_METHOD"] != "POST"){ header("HTTP/1.0 404 Not Found"); return; }else{ //メール送信処理 (省略) $message = "送信完了メッセージ"; $result = array('result' => $message); echo json_encode($result); }

  • メールフォームからのメールが届いていない

    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>お問い合わせフォーム</title> </head> <body> <?php //お問い合わせタイトル、詳細のセット $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'], ENT_QUOTES); //日本語(UTF-8)の指定 mb_language('ja'); mb_internal_encoding('UTF-8'); // Fromアドレスの設定(自動送信<@hb.tp1.jp>) $name = '自動送信'; $email = '<@hb.tp1.jp>'; $header = 'From: '. mb_encode_mimeheader($name) . '<' . $email .'>'; // メール送信 $result = mb_send_mail("<@hb.tp1.jp>", $title, $message, $header); //メール送信の確認 if ($result){ echo '■お問い合わせ内容を担当者に送信しました。'; } else { echo '■担当者への送信に失敗しました。'; } ?> </body> </html> 何故でしょうか??

    • ベストアンサー
    • PHP
  • メールフォームが動いてくれない。

    初心者ながら以下のようなメールフォームを書いたのですがうまく動いてくれません。どうしてなのでしょうか? ----hoge.php---- <?php $mail = $_POST['mail']; $address = $_POST['add']; if(empty($mail)){ $1 = "入力してください。"; }elseif(empty($address)){ $2 = "入力してください。"; }else{ //メール送信 echo("送信しました。"); exit; } ?> <form action="hoge.php" method="post"> E-mail <inputtype="text" name="add"><?=$1?> Message <input type="text" name="mail"><?=$2?> <input type="submit" value="send!!"> </form> ----- 一応、メールアドレスや本文が未入力の場合、エラーメッセージを出すようにしています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP