フォームメール送信後のリンク先

このQ&Aのポイント
  • PDFにアクセスする人の情報を入手するためのフォームメール送信後のリンク先について教えてください。
  • フォームメール送信後、必要事項とメールアドレスが指定のe-mailアドレスに届き、PDFファイルを開くことができる仕組みについて教えてください。
  • フォームメール送信後、メールを受け取らない場合にPDFのリンク先に飛ばないようにする方法について教えてください。
回答を見る
  • ベストアンサー

フォームメール送信後のリンク先

●やりたいこと PDFにアクセスする(した)人(A)の情報を入手(B)したい ●ホームページの構成 1.(A)必要事項にチェック・e-mailアドレスを入力後、Submitボタンを押す 2.必要事項とメールアドレスが指定のe-mailアドレス(B)に届く 3.(A)は希望のPDFファイルを開けられる ●問題点 JavaScriptで作成しているのですが、 (A)がSubmitボタンを押すと 「このフォームはe-mailを経由して送信されます。送信することによりあなたのe-mail addressがわかりますし、暗号化せず送られますので危険です。送信しますか?(英文)」と表示されます。 YES → (B)にメールが来て(A)はPDFを見れます。 NO → (B)にメールがこないにもかかわらず、(A)はPDFを見れます。 (A)の情報を見たいので、NOにした場合はPDFのリンク先に飛ばないようにしたいのですが、どのようにすればよいでしょうか? 以下使っているタグです。 ●HEAD <SCRIPT Language="JavaScript"> <!-- function checkField(){ if (document.Form1.PURPOSE.value == ""||document.Form1.EMAIL.value == ""){ alert("必須項目が入力されていません。"); return false; } location.href="pdf.htm"; } //--> </SCRIPT> ●body <FORM Name="Form1" METHOD="POST" ACTION="mailto:***@****.com subject=プレゼン請求" onSubmit="return checkField()" ENCTYPE="TEXT/PLAIN"> 教えてください。 よろしくお願いします。

  • Swim
  • お礼率79% (248/313)

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

> NO → (B)にメールがこないにもかかわらず、(A)はPDFを見れます。 そりゃ、そうでしょう(^_^;) ここで質問されている内容は、「暗号化されていないけれど、メールを送っても大丈夫?」と言うこと*だけ*を聞いているのであって、次の処理に移動する? って聞いているのではないのです。 メールを送信しなくても、メールアドレスなどが空で無いのだからlocation.href="pdf.htm"; が実行されるのが当たり前の流れですよね? location.href="pdf.htm"; の前で、「メールは送信されたか?」と聞くことができれば良いのでしょうけど。 要するに、発想点がズレているのです。 さて。本題に入りましょう。 結論から言って、こう言う処理は JavaScript 向きの処理ではありません。JavaScript と言うのはクライアントサイドで動作するものです。しかし、PDFファイルのダウンロードはサーバーサイドで制御すべき事ですよね。 なので、JavaScriptではなくて、CGIやPHPを使ってメールフォームを作成し、メール送信処理が終了した時点で、ダウンロードページへ遷移する様に作るのが妥当です。

Swim
質問者

お礼

早速の回答ありがとうございます。やはりCGI/PHPですよね。「発送点がズレている」思わず笑ってしまいました~。無知をさらけ出してしまった感じ~。 もっと勉強します。ありがとうございました。

関連するQ&A

  • リンクでPOST送信

    http://www.kojikoji.net/pso/javascript.asp こちらにその方法がのっていて、 Windows IE 6.0 Windows Opera 7.13 では動作を確認しました。ですが、 Windwos Netscape 7.1 で動作しません。Netscapeにも対応した書き方で、<a href=...>を用いてPOST送信することは可能でしょうか? *****以下引用*********************************** リンクやボタンを使って「xxx.asp」へPOST送信 <html> <head> <script language="JavaScript"> <!-- function wPost(a1,a2){ document.form1.text1.value=a1; document.form1.text2.value=a2; document.form1.action = "xxx.asp"; document.form1.submit(); } //--> </script> </head> <body> <a href="javascript:wPost("text1","text2")">送信</a> <input type="button" OnClick="wPost('text3','text4')" value="送信"> <form name="form1" method="post" action="err.html"> <input type="hidden" name="text1"> <input type="hidden" name="text2"> </form> </body> </html>

  • POST送信かGET送信か

       ------------------------------------------ <SCRIPT language="JavaScript"><!-- function GoPage(url, id){ document.form.action = url; document.form.id.value = id; document.form.submit(true) } // --></script> <!--中略--> <input type="submit" name="submit" value="送信" onClick="javascript:GoPage("a.php", "1")">    ------------------------------------------    上記のような処理を書いた場合、 遷移先である a.php で id(値:1)を取得する時は POSTで受け取るのですか?それともGETでしょうか?   

  • リンクを押すとフォームを送信

    リンクを押すとフォームを送信したいので、 <a href="JavaScript:document.form1.submit()"・・・ というふうに、書いたのですが、 リンクのみだとちゃんと動くのですが、 同一フォーム内にボタンとリンクが混在するとJavaScriptエラーが発生してしまします。どうしたらいいでしょうか?

    • ベストアンサー
    • HTML
  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • JavaScriptでデータ送信

    あるJavaScriptを使ったPerlスクリプトの改造を行っています。 <A href="JavaScript:dataTrans()" class="link">link</A>をクリックすることにより、 function dataTrans(){ if(startflg){return;} if(max == 0){alert("メッセージ");return;} document.form1.para0.value = data; document.form1.para1.value = data2; document.form1.submit(); } 上記データをCGIページに送っているようです。 このJavaScriptから送信したデータはCGI側で正常に表示されているのですが、Perlスクリプトの改造でリンク元制限を行うと、送信元のページ情報をCGI側で読み取ることができていないようで、制限ができないようです。よくわかりませんが・・・ <A href="http://">link</a>からCGIへリンクした場合は、正常にリンク元制限が行えます。 document.form1.para0.value = data; document.form1.para1.value = data2; document.form1.submit(); この部分を変更すれば、リンク元ページ情報が正常に受信できるのではと考え、 http://pzxa85.hp.infoseek.co.jp/www/wwwjsfor.htm ↑ページ等の解説ページをみてみましたが、よくわかりませんでした。 JavaScriptは勉強したことがなく、Perlも入門者程度の知識です。わからないことだらけで、言いたいことが上手く伝えられませんが、出来るだけ調べて説明させてもらいますので、どうぞ宜しくお願いいたします。

  • メールフォームエラー表示について

    お世話になります。 以下のフォーム内容エラー表示のスクリプトはWinIEでは動作するのですが、Firefox、Safariでは動作しません。なぜでしょうか?ご教授下さい。 又、メールアドレスを2つ入力個所を設け、その二つが異なる場合エラーを出したいのですが、どうしたらいいでしょうか? そして、あるチェックボックスにチェックを入れて場合のみ送信ボタンが押すことができるようにするにはどうしたらいいでしょうか? 度重なる質問で申し訳ありません。 何卒宜しくお願い致します。 <html> <head> <script type="text/javascript"> <!-- // メールアドレスチェック function isAddress(address) { if(address.indexOf("@",0)<=0) { return false; } else { return true; } } // submit可能か判定(form1) function jdgSubmit1() { var errItem = ""; // お名前が空の場合 if (document.form1.item('name1').value == null || document.form1.item('name1').value == "") { errItem = errItem + "お名前を入力して下さい。<br />"; document.form1.item('name1').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('name1').style.backgroundColor = "#ffffff"; } // ふりがなが空の場合 if (document.form1.item('name2').value == null || document.form1.item('name2').value == "") { errItem = errItem + "ふりがなを入力して下さい。<br />"; document.form1.item('name2').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('name2').style.backgroundColor = "#ffffff"; } // E-mailが空の場合 if (document.form1.item('eaddress').value == null || document.form1.item('eaddress').value == "") { errItem = errItem + "メールアドレスを入力して下さい。<br />"; document.form1.item('eaddress').style.backgroundColor = "#BBBBBB"; } else { if (!isAddress(document.form1.item('eaddress').value)) { errItem = errItem + "正しいメールアドレスを入力して下さい。<br />"; document.form1.item('eaddress').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('eaddress').style.backgroundColor = "#ffffff"; } } // 本文が空の場合 if (document.form1.item('content').value == null || document.form1.item('content').value == "") { errItem = errItem + "お問い合わせ内容を入力して下さい。<br />"; document.form1.item('content').style.backgroundColor = "#BBBBBB"; } else { document.form1.item('content').style.backgroundColor = "#ffffff"; } // エラーがあるか確認 if (errItem != "") { err.innerHTML = errItem; return false; } document.form1.submit(); } --> </script> </head> <body> <form name="form" action="mail-send.php" method="POST"> <div id="err"></div> <div> <table cellspacing="0" cellpadding="0"> <tr> <td>お名前</td> <td><input type="text" name="name1" size="30" maxlength="100" /></td> </tr> <tr> <td>ふりがな</td> <td><input type="text" name="name2" size="30" maxlength="100" /></td> </tr> <tr> <td>E-mail</td> <td><input type="text" name="eaddress" size="30" maxlength="100" /></td> </tr> <tr> <td>本文</td> <td><textarea name="content" rows="6" /></textarea></td> </tr> </table> </div> <input type="submit" value="送信" name="submit" id="submit" onClick="jdgSubmit1();return false" /> </form> </body> </html>

  • javascript confirmでFORM送信

    javascript confirmにて「この点数で良ければ送信する」というものを考えています。 この点数部分は変数になる予定であり、javascript内部で生成されます。 まずは、変数ではなく固定値として、javascriptの中にある数値を<form></form>の中に生成することを考えましたがいきなりつまずきました。 「100という数値を送信」するつもりだったのですが、うまく送信することが出来ません。 どこを修正すればいいかご教示いただきたくお願いいたします。 <html> <head> <title>submit</title> </head> <script language="javascript"> <!-- function frmSubmit() { var errFlag=true; if(errFlag==false) { return; } if(confirm("100点です。送信しますか?")) { document.frm.submit(); document.getElementById("plus").value ="100"; } else { } } //--> </script> <body> <form method="post" action="form.cgi" name="frm" target="_self"> <input type="HIDDEN" id="plus" value="" /><br /> <input type="button" value="send" onclick="frmSubmit();"> </form> </body> </html>

  • メールフォームについて

    <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- function startNavi(){ document.myform.Browser.value=navigator.appName; document.myform.Version.value=navigator.appVersion; } // --> </SCRIPT> </HEAD> <BODY> <CENTER> <FORM action="mailto:送り先Eメールアドレス" method="post" enctype="text/plain" name="myform" onSubmit="startNavi()"> <INPUT type="hidden" name="Browser"> <INPUT type="hidden" name="Version"> <TABLE border="0"> <TR><TD>名  前:</TD><TD><INPUT name="名前" size="20"></TD></TR> <TR><TD>Eメール:</TD><TD><INPUT name="Eメール" size="20"></TD></TR> <TR><TD>コメント:</TD><TD><TEXTAREA name="コメント" rows="5" cols="15"></TEXTAREA></TD></TR> </TABLE><BR> <INPUT type="submit" value="送信"> </FORM> </CENTER> </BODY> </HTML> と入力すれば、ブラウザ情報、名前、e-mail、コメントの情報がメールで送信されてきます。 こんな感じで、送信者のIPアドレスも記載されるようにするにはどうやってJavaScriptなどを記述すればいいでしょうか? 他の情報も記述することができるのならば、是非是非教えて下さい。(サイトでもOK)

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • 【続】ダミーフォームの内容を送信用フォームに受け渡し&文字連結

    先日、同じタイトルで質問したものです。以前した質問の内容は、以下でご確認下さい。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2387209 今度は違う問題が発生してしまいました。下記スクリプトを設定した購入ボタン(SUBMIT)を押し、ショッピングカートの画面(CGI)に入ると、きちんとJAVASCRIPTで指定した通りにVALUEの受け渡し・文字連結されていることが確認できました。 次に、カート画面の『前の画面に戻る』(onclickでhistory.go(-1)がシステムで設定されてあり変更不可)を押すと、当然商品オーダー画面に戻り、FORM内容もそのまま残っております。 そこで、もう一度同じ商品を同じ内容で購入、もしくは個数を変更・VALUEを変更などして購入しようとすると、購入個数がダブって送信されてしまいます。個数倍以外におかしい点はありませんでした。 1個購入すると → 2個、10個購入すると → 20個 IE7で確認。FIREFOXでは正常に送信されました。IEの何かバグでしょうか? この重複を防ぐような追記スクリプトがあれば教えてください。よろしくお願いします。 <script type="text/javascript"> <!-- function func() { document.SELECT.option2.value=getValue( "option2a" ) + "/" + getValue( "option2b" ); document.SELECT.option3.value=document.SELECT.option3a.value + "/" + document.SELECT.option3b.value; document.SELECT.submit(); } function getValue( name ) { value = ""; e = document.getElementsByName( name ); for( idx=0; idx<e.length; idx++ ) { if( e[ idx ].checked ) {value += e[ idx ].value;} } return( value ); } // --> </script>

専門家に質問してみよう