htmlとphpをつかってサーバに送るまでは出来るんですが、
その送られたデータをどうやったら受け取れるかがわかりません。
お手数ですが、やり方を教えていただけると嬉しいです。
以前作った簡単なメールフォームはこんな感じです。
参考までどうぞ。
①フォームに記入して送信を押す
②javascriptでメールを送信してくれるPHPファイルに内容を送る。
※javascriptでおくらないと、ページがリロードされてしまうので・・こうしました。
③メール送信PHPファイルでメールを送る。
<HTML側>
===上略===ここから②のjavascript(headerか外部ファイル)===
<script type="text/javascript"></p> <p><!--</p> <p>function Sendmail(){</p> <p>var fm = document.forms['mail'];</p> <p>var from = fm.elements['from'].value;</p> <p>var subject = fm.elements['subject'].value;</p> <p>var hito = fm.elements['hito'].value;</p> <p>var honbun = fm.elements['honbun'].value;</p> <p>var alert_word ="";</p> <p>//フォームのエラーチェック。本当はメルアドの形式が正しいかもチェックした方がいい</p> <p>if(honbun =="" || hito =="" || from ==""){alert_word = "メール本文、送信者のお名前、返信先メールアドレスは必記入でお願いします!";}</p> <p>if(alert_word !=""){alert(alert_word);</p> <p>return;</p> <p>}</p> <p>//エラーがなかったらフォーム内容をクリア</p> <p>fm.elements['honbun'].value = "";</p> <p>fm.elements['from'].value = "";</p> <p>fm.elements['subject'].value = "";</p> <p>fm.elements['hito'].value ="";</p> <p>//PHP側に送る処理</p> <p>var req = "from="+from+"&subject="+subject+"&hito="+hito+"&honbun="+honbun;</p> <p>var xhrObj = createXmlHttpRequest();</p> <p>xhrObj.open("post","SendMail.php",false);//ここにメールを送るPHPファイルの場所を記入。左の場合同じディレクトリにある。</p> <p>xhrObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");</p> <p>xhrObj.send(req);</p> <p>var result = xhrObj.responseText;</p> <p>//PHP側の処理結果をアラーとする。「送信完了」OR「送信失敗」</p> <p>alert(result);</p> <p>}</p> <p>//Ajax </p> <p>function createXmlHttpRequest() {</p> <p>if(window.XMLHttpRequest){ // Firefox,Opera,Safari,IE7</p> <p>return new XMLHttpRequest();</p> <p>}else if(window.ActiveXObject){ // IE6</p> <p>try{</p> <p>return new ActiveXObject("Msxml2.XMLHTTP"); // MSXML3</p> <p>}catch(e){</p> <p>return new ActiveXObject("Microsoft.XMLHTTP"); // MSXML2まで</p> <p>}</p> <p>}else{</p> <p>return null;</p> <p>}</p> <p> </p> <p>}</p> <p>--></p> <p></script>
=====中略==== ここからフォーム
<form name="mail">
お名前: | <input type="text" name="hito" /> |
返信先: | <input type="text" name="from" /> |
件 名: | <input type="text" name="subject"> |
<textarea name="honbun" cols="25" rows="10" ></textarea> | |
<input type="button" value="メッセージ送信" onClick="Sendmail();"> |
</form>
======以下略======
<メール送信PHPファイル>
mb_language("ja");
mb_internal_encoding("UTF-8");
$from = strip_tags($_POST['from']);
$honbun = strip_tags($_POST['honbun']);
$subject = strip_tags($_POST['subject']);
$hito = strip_tags($_POST['hito']);
$subject2 = "ホームページよりメールです";
$naiyo = $hito . "様よりメールです\n";
$naiyo .= "件名: ".$subject . "\n";
$naiyo .= "返信先: " .$from . "\n\n";
$naiyo .= $honbun;
//$naiyo = mb_convert_encoding($naiyo,"JIS");//文字化けしたらこれ
$result = mb_send_mail(aaaaaaaaaa@yahoo.co.jp',$subject2,$naiyo);//フォーム内容を送りたいメルアド
if($result){$result ="メールを送信しました。";}else{$result ="メールの送信に失敗しました";}
echo $result;
?>
すいません、javascript部分何回書き直しても変な文字はいるかも?
ぬかしてください
質問が漠然としているため具体的なお答えができません。
問い合わせフォームの内容を受け取る方法は、大別して3つあります。
1.の方法については「http://php.frogstone.jp/inquiry/index.html:title=PHPプログラム実習 お問い合わせフォーム」」が参考になります。
ただし、ご利用のシステムがメール送信サーバ(SMTP)をPHPから呼び出すことを許可している場合に限られます。
フォームの作り方によりますが、大きく分けて2つあります。
(1)メールとして送る
(2)管理者にしか読むことが出来ないページに書き込む
(3)データベースに書きこむ
主に(1)だと思われますが、自分自身で昔cgiを組んで(2)(3)を作った事があります。そのサーバでsendmailの使用が禁止されていたからなのですが、今時のサーバであればsendmailは使えると思いますので、ほぼ(1)で出来ると思います。
---
具体的には、phpの具体的内容を見てみないと判断できませんが、どこかにメールアドレスを設定する欄が無いでしょうか。
そのメールアドレスに自分のメアドを設定しないと、当然自分のメアドにメールは届きませんよ。
作り方がわからないということなのですが、CGIの設置などはできますか?
おそらく、なかなか難しいことが多いと思うので、簡単なサービスを紹介します。
セキュリティなど安全面も安心で、フリーと、月額料金がかかるものがあります。
リンク先が消えているみたいなんですが、、
方法としては1のやり方がやりたいのです。。
申し訳ありません。誤字がありました。
「PHPプログラム実習 お問い合わせフォーム」を参考にして下さい。
以前作った簡単なメールフォームはこんな感じです。
参考までどうぞ。
①フォームに記入して送信を押す
②javascriptでメールを送信してくれるPHPファイルに内容を送る。
※javascriptでおくらないと、ページがリロードされてしまうので・・こうしました。
③メール送信PHPファイルでメールを送る。
<HTML側>
===上略===ここから②のjavascript(headerか外部ファイル)===
<script type="text/javascript"></p> <p><!--</p> <p>function Sendmail(){</p> <p>var fm = document.forms['mail'];</p> <p>var from = fm.elements['from'].value;</p> <p>var subject = fm.elements['subject'].value;</p> <p>var hito = fm.elements['hito'].value;</p> <p>var honbun = fm.elements['honbun'].value;</p> <p>var alert_word ="";</p> <p>//フォームのエラーチェック。本当はメルアドの形式が正しいかもチェックした方がいい</p> <p>if(honbun =="" || hito =="" || from ==""){alert_word = "メール本文、送信者のお名前、返信先メールアドレスは必記入でお願いします!";}</p> <p>if(alert_word !=""){alert(alert_word);</p> <p>return;</p> <p>}</p> <p>//エラーがなかったらフォーム内容をクリア</p> <p>fm.elements['honbun'].value = "";</p> <p>fm.elements['from'].value = "";</p> <p>fm.elements['subject'].value = "";</p> <p>fm.elements['hito'].value ="";</p> <p>//PHP側に送る処理</p> <p>var req = "from="+from+"&subject="+subject+"&hito="+hito+"&honbun="+honbun;</p> <p>var xhrObj = createXmlHttpRequest();</p> <p>xhrObj.open("post","SendMail.php",false);//ここにメールを送るPHPファイルの場所を記入。左の場合同じディレクトリにある。</p> <p>xhrObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");</p> <p>xhrObj.send(req);</p> <p>var result = xhrObj.responseText;</p> <p>//PHP側の処理結果をアラーとする。「送信完了」OR「送信失敗」</p> <p>alert(result);</p> <p>}</p> <p>//Ajax </p> <p>function createXmlHttpRequest() {</p> <p>if(window.XMLHttpRequest){ // Firefox,Opera,Safari,IE7</p> <p>return new XMLHttpRequest();</p> <p>}else if(window.ActiveXObject){ // IE6</p> <p>try{</p> <p>return new ActiveXObject("Msxml2.XMLHTTP"); // MSXML3</p> <p>}catch(e){</p> <p>return new ActiveXObject("Microsoft.XMLHTTP"); // MSXML2まで</p> <p>}</p> <p>}else{</p> <p>return null;</p> <p>}</p> <p> </p> <p>}</p> <p>--></p> <p></script>
=====中略==== ここからフォーム
<form name="mail">
お名前: | <input type="text" name="hito" /> |
返信先: | <input type="text" name="from" /> |
件 名: | <input type="text" name="subject"> |
<textarea name="honbun" cols="25" rows="10" ></textarea> | |
<input type="button" value="メッセージ送信" onClick="Sendmail();"> |
</form>
======以下略======
<メール送信PHPファイル>
mb_language("ja");
mb_internal_encoding("UTF-8");
$from = strip_tags($_POST['from']);
$honbun = strip_tags($_POST['honbun']);
$subject = strip_tags($_POST['subject']);
$hito = strip_tags($_POST['hito']);
$subject2 = "ホームページよりメールです";
$naiyo = $hito . "様よりメールです\n";
$naiyo .= "件名: ".$subject . "\n";
$naiyo .= "返信先: " .$from . "\n\n";
$naiyo .= $honbun;
//$naiyo = mb_convert_encoding($naiyo,"JIS");//文字化けしたらこれ
$result = mb_send_mail(aaaaaaaaaa@yahoo.co.jp',$subject2,$naiyo);//フォーム内容を送りたいメルアド
if($result){$result ="メールを送信しました。";}else{$result ="メールの送信に失敗しました";}
echo $result;
?>
すいません、javascript部分何回書き直しても変な文字はいるかも?
ぬかしてください
すみません、リンク先が消えているみたいなんですが、、
方法としては1のやり方がやりたいのです。。
またよっかったら教えていただきたいです。